"""visaacceptancemergedspec.

This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
"""

# ruff: noqa: E501
from visaacceptancemergedspec.api_helper import (
    APIHelper,
)
from visaacceptancemergedspec.models.bank_transfer_options_2 import (
    BankTransferOptions2,
)
from visaacceptancemergedspec.models.electronic_benefits_transfer_1 import (
    ElectronicBenefitsTransfer1,
)
from visaacceptancemergedspec.models.japan_payment_options_1 import (
    JapanPaymentOptions1,
)
from visaacceptancemergedspec.models.loan_options import (
    LoanOptions,
)
from visaacceptancemergedspec.models.purchase_options_2 import (
    PurchaseOptions2,
)
from visaacceptancemergedspec.models.recurring_options_1 import (
    RecurringOptions1,
)
from visaacceptancemergedspec.models.refund_options_2 import (
    RefundOptions2,
)


class ProcessingInformation11(object):
    """Implementation of the 'ProcessingInformation11' model.

    Attributes:
        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.  #### 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   #### 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"
        processor_id (str): Value that identifies the processor/acquirer to use for
            the transaction. This value is supported only for **Visa Acceptance
            through VisaNet**.  Contact Visa Acceptance Customer Support to get the
            value for this field.
        payment_solution (str): Type of digital payment solution for the transaction.
            Possible Values:   - `visacheckout`: Visa Checkout. This value is
            required for Visa Checkout transactions. For details, see
            `payment_solution` field description in [Visa Checkout Using the REST
            API.](  - `001`: Apple Pay.  - `004`: Visa Acceptance In-App Solution.  -
            `005`: Masterpass. This value is required for Masterpass transactions on
            OmniPay Direct.   - `006`: Android Pay.  - `007`: Chase Pay.  - `008`:
            Samsung Pay.  - `012`: Google Pay.  - `013`: Visa Acceptance P2PE
            Decryption  - `014`: Mastercard credential on file (COF) payment network
            token. Returned in authorizations that use a payment network token
            associated with a TMS token.  - `015`: Visa credential on file (COF)
            payment network token. Returned in authorizations that use a payment
            network token associated with a TMS token.  - `027`: Click to Pay.
        reconciliation_id (str): Please check with Visa Acceptance customer support
            to see if your merchant account is configured correctly so you can
            include this field in your request. * For Payouts: max length for
            FDCCompass is String (22).
        link_id (str): Value that links the current authorization request to the
            original authorization request. Set this value to the ID that was
            returned in the reply message from the original authorization request.
            This value is used for:  - Partial authorizations - Split shipments
        report_group (str): Attribute that lets you define custom grouping for your
            processor reports. This field is supported only for **Worldpay VAP**.
        visa_checkout_id (str): Identifier for the **Visa Checkout** order. Visa
            Checkout provides a unique order ID for every transaction in the Visa
            Checkout **callID** field.
        purchase_level (str): Set this field to 3 to indicate that the request
            includes Level III data.
        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 Visa Acceptance through VisaNet.
        wallet_type (str): This field carries the wallet type in authorization
            requests and credit requests. Possible value are: - `101`: Masterpass
            remote payment. The customer created the wallet by manually interacting
            with a customer-controlled device such as a computer, tablet, or phone.
            This value is supported only for Masterpass transactions on Chase
            Paymentech Solutions and Visa Acceptance through VisaNet. - `102`:
            Masterpass remote near field communication (NFC) payment. The customer
            created the wallet by tapping a PayPass card or customer-controlled
            device at a contactless card reader. This value is supported only for
            card-present Masterpass transactions on Visa Acceptance through VisaNet.
            - `103`: Masterpass Apple Pay payment. The payment was made with a
            combination of Masterpass and Apple Pay. This value is supported only for
            Masterpass Apple Pay transactions on Visa Acceptance through VisaNet. -
            `216`: Masterpass Google Pay payment. The payment was made with a
            combination of Masterpass and Google Pay. This value is supported only
            for Masterpass Google Pay transactions on Visa Acceptance through
            VisaNet. - `217`: Masterpass Samsung Pay payment. The payment was made
            with a combination of Masterpass and Samsung Pay. This value is supported
            only for Masterpass Samsung Pay transactions on Visa Acceptance through
            VisaNet. - `SDW`: Staged digital wallet. An issuer or operator created
            the wallet. This value is supported only for Masterpass transactions on
            Chase Paymentech Solutions. - `VCIND`: Visa Checkout payment. This value
            is supported only on Visa Acceptance through VisaNet, FDC Compass, FDC
            Nashville Global, FDI Australia, and TSYS Acquiring Solutions. See
            Getting Started with Visa Checkout. For Visa Checkout transactions, the
            way Visa Acceptance processes the value for this field depends on the
            processor. See the Visa Checkout section below. For all other values,
            this field is a passthrough; therefore, Visa Acceptance does not verify
            the value or modify it in any way before sending it to the processor.
            Masterpass (101, 102, 103, 216, and 217): The Masterpass platform
            generates the wallet type value and passes it to you along with the
            customer’s checkout information.  Visa Checkout: This field is optional
            for Visa Checkout authorizations on FDI Australia. For all other
            processors, this field is required for Visa Checkout authorizations. For
            Visa Checkout transactions on the following processors, Visa Acceptance
            sends the value that the processor expects for this field:FDC Compass,FDC
            Nashville Global,FDI Australia,TSYS Acquiring Solutions For all other
            processors, this field is a passthrough; therefore, Visa Acceptance does
            not verify the value or modify it in any way before sending it to the
            processor. For incremental authorizations, this field is supported only
            for Mastercard and the supported values are 101 and 102. Payment card
            companies can introduce new values without notice. Your order management
            system should be able to process new values without problems.  Visa
            Acceptance through VisaNet When the value for this field is 101, 102,
            103, 216, or 217, it corresponds to the following data in the TC 33
            capture file5: Record: CP01 TCR6, Position: 88-90,  Field: Mastercard
            Wallet Identifier. When the value for this field is VCIND, it corresponds
            to the following data in the TC 33 capture file5: Record: CP01 TCR8,
            Position: 72-76, Field: Agent Unique ID.
        national_net_domestic_data (str): Supplementary domestic transaction
            information provided by the acquirer for National Net Settlement Service
            (NNSS) transactions. NNSS is a settlement service that Visa provides. For
            transactions on Visa Acceptance through VisaNet in countries that
            subscribe to NNSS: VisaNet clears transactions; VisaNet transfers funds
            to the acquirer after deducting processing fees and interchange fees.
            VisaNet settles transactions in the local pricing currency through a
            local financial institution. This field is supported only on Visa
            Acceptance through VisaNet for domestic data in Colombia
        network_routing_order (str): On PIN Debit Gateways: This U.S.-only field is
            optionally used by  participants (merchants and acquirers) to specify the
            network access priority. VisaNet checks to determine if there are issuer
            routing preferences for any of the networks specified by the sharing
            group code. If an issuer preference exists for one of the specified debit
            networks, VisaNet makes a routing selection based on the issuer’s
            preference. If an issuer preference exists for more than one of the
            specified debit networks, or if no issuer preference exists, VisaNet
            makes a selection based on the acquirer’s routing priorities.  #### PIN
            debit Priority order of the networks through which he transaction will be
            routed. Set this value to a series of one-character network codes in your
            preferred order. This is a list of the network codes:  | Network | Code |
            | --- | --- | | Accel | E | | AFFN | U | | Alaska Option | 3 | | CU24 | C
            | | Interlink | G | | Maestro | 8 | | NETS | P | | NYCE | F | | Pulse | H
            | | Shazam | 7 | | Star | M | | Visa | V |  For example, if the Star
            network is your first preference and Pulse is your second preference, set
            this field to a value of `MH`.  When you do not include this value in
            your PIN debit request, the list of network codes from your account is
            used. **Note** This field is supported only for businesses located in the
            U.S.  Optional field for PIN debit credit or PIN debit purchase.
        recurring_options (RecurringOptions1): The model property of type
            RecurringOptions1.
        bank_transfer_options (BankTransferOptions2): The model property of type
            BankTransferOptions2.
        purchase_options (PurchaseOptions2): The model property of type
            PurchaseOptions2.
        electronic_benefits_transfer (ElectronicBenefitsTransfer1): The model
            property of type ElectronicBenefitsTransfer1.
        loan_options (LoanOptions): The model property of type LoanOptions.
        japan_payment_options (JapanPaymentOptions1): The model property of type
            JapanPaymentOptions1.
        refund_options (RefundOptions2): The model property of type RefundOptions2.
        additional_properties (Dict[str, Any]): The additional properties for the
            model.

    """

    # Create a mapping from Model property names to API property names
    _names = {
        "commerce_indicator": "commerceIndicator",
        "processor_id": "processorId",
        "payment_solution": "paymentSolution",
        "reconciliation_id": "reconciliationId",
        "link_id": "linkId",
        "report_group": "reportGroup",
        "visa_checkout_id": "visaCheckoutId",
        "purchase_level": "purchaseLevel",
        "industry_data_type": "industryDataType",
        "wallet_type": "walletType",
        "national_net_domestic_data": "nationalNetDomesticData",
        "network_routing_order": "networkRoutingOrder",
        "recurring_options": "recurringOptions",
        "bank_transfer_options": "bankTransferOptions",
        "purchase_options": "purchaseOptions",
        "electronic_benefits_transfer": "electronicBenefitsTransfer",
        "loan_options": "loanOptions",
        "japan_payment_options": "japanPaymentOptions",
        "refund_options": "refundOptions",
    }

    _optionals = [
        "commerce_indicator",
        "processor_id",
        "payment_solution",
        "reconciliation_id",
        "link_id",
        "report_group",
        "visa_checkout_id",
        "purchase_level",
        "industry_data_type",
        "wallet_type",
        "national_net_domestic_data",
        "network_routing_order",
        "recurring_options",
        "bank_transfer_options",
        "purchase_options",
        "electronic_benefits_transfer",
        "loan_options",
        "japan_payment_options",
        "refund_options",
    ]

    def __init__(
        self,
        commerce_indicator=APIHelper.SKIP,
        processor_id=APIHelper.SKIP,
        payment_solution=APIHelper.SKIP,
        reconciliation_id=APIHelper.SKIP,
        link_id=APIHelper.SKIP,
        report_group=APIHelper.SKIP,
        visa_checkout_id=APIHelper.SKIP,
        purchase_level=APIHelper.SKIP,
        industry_data_type=APIHelper.SKIP,
        wallet_type=APIHelper.SKIP,
        national_net_domestic_data=APIHelper.SKIP,
        network_routing_order=APIHelper.SKIP,
        recurring_options=APIHelper.SKIP,
        bank_transfer_options=APIHelper.SKIP,
        purchase_options=APIHelper.SKIP,
        electronic_benefits_transfer=APIHelper.SKIP,
        loan_options=APIHelper.SKIP,
        japan_payment_options=APIHelper.SKIP,
        refund_options=APIHelper.SKIP,
        additional_properties=None):
        """Initialize a ProcessingInformation11 instance."""
        # Initialize members of the class
        if commerce_indicator is not APIHelper.SKIP:
            self.commerce_indicator = commerce_indicator
        if processor_id is not APIHelper.SKIP:
            self.processor_id = processor_id
        if payment_solution is not APIHelper.SKIP:
            self.payment_solution = payment_solution
        if reconciliation_id is not APIHelper.SKIP:
            self.reconciliation_id = reconciliation_id
        if link_id is not APIHelper.SKIP:
            self.link_id = link_id
        if report_group is not APIHelper.SKIP:
            self.report_group = report_group
        if visa_checkout_id is not APIHelper.SKIP:
            self.visa_checkout_id = visa_checkout_id
        if purchase_level is not APIHelper.SKIP:
            self.purchase_level = purchase_level
        if industry_data_type is not APIHelper.SKIP:
            self.industry_data_type = industry_data_type
        if wallet_type is not APIHelper.SKIP:
            self.wallet_type = wallet_type
        if national_net_domestic_data is not APIHelper.SKIP:
            self.national_net_domestic_data = national_net_domestic_data
        if network_routing_order is not APIHelper.SKIP:
            self.network_routing_order = network_routing_order
        if recurring_options is not APIHelper.SKIP:
            self.recurring_options = recurring_options
        if bank_transfer_options is not APIHelper.SKIP:
            self.bank_transfer_options = bank_transfer_options
        if purchase_options is not APIHelper.SKIP:
            self.purchase_options = purchase_options
        if electronic_benefits_transfer is not APIHelper.SKIP:
            self.electronic_benefits_transfer = electronic_benefits_transfer
        if loan_options is not APIHelper.SKIP:
            self.loan_options = loan_options
        if japan_payment_options is not APIHelper.SKIP:
            self.japan_payment_options = japan_payment_options
        if refund_options is not APIHelper.SKIP:
            self.refund_options = refund_options

        # Add additional model properties to the instance
        if additional_properties is None:
            additional_properties = {}
        self.additional_properties = additional_properties

    @classmethod
    def from_dictionary(cls,
                        dictionary):
        """Create an instance of this model from a dictionary

        Args:
            dictionary (dictionary): A dictionary representation of the object
            as obtained from the deserialization of the server's response. The
            keys MUST match property names in the API description.

        Returns:
            object: An instance of this structure class.

        """
        if not isinstance(dictionary, dict) or dictionary is None:
            return None

        # Extract variables from the dictionary
        commerce_indicator =\
            dictionary.get("commerceIndicator")\
            if dictionary.get("commerceIndicator")\
                else APIHelper.SKIP
        processor_id =\
            dictionary.get("processorId")\
            if dictionary.get("processorId")\
                else APIHelper.SKIP
        payment_solution =\
            dictionary.get("paymentSolution")\
            if dictionary.get("paymentSolution")\
                else APIHelper.SKIP
        reconciliation_id =\
            dictionary.get("reconciliationId")\
            if dictionary.get("reconciliationId")\
                else APIHelper.SKIP
        link_id =\
            dictionary.get("linkId")\
            if dictionary.get("linkId")\
                else APIHelper.SKIP
        report_group =\
            dictionary.get("reportGroup")\
            if dictionary.get("reportGroup")\
                else APIHelper.SKIP
        visa_checkout_id =\
            dictionary.get("visaCheckoutId")\
            if dictionary.get("visaCheckoutId")\
                else APIHelper.SKIP
        purchase_level =\
            dictionary.get("purchaseLevel")\
            if dictionary.get("purchaseLevel")\
                else APIHelper.SKIP
        industry_data_type =\
            dictionary.get("industryDataType")\
            if dictionary.get("industryDataType")\
                else APIHelper.SKIP
        wallet_type =\
            dictionary.get("walletType")\
            if dictionary.get("walletType")\
                else APIHelper.SKIP
        national_net_domestic_data =\
            dictionary.get("nationalNetDomesticData")\
            if dictionary.get("nationalNetDomesticData")\
                else APIHelper.SKIP
        network_routing_order =\
            dictionary.get("networkRoutingOrder")\
            if dictionary.get("networkRoutingOrder")\
                else APIHelper.SKIP
        recurring_options =\
            RecurringOptions1.from_dictionary(
                dictionary.get("recurringOptions"))\
                if "recurringOptions" in dictionary.keys()\
                else APIHelper.SKIP
        bank_transfer_options =\
            BankTransferOptions2.from_dictionary(
                dictionary.get("bankTransferOptions"))\
                if "bankTransferOptions" in dictionary.keys()\
                else APIHelper.SKIP
        purchase_options =\
            PurchaseOptions2.from_dictionary(
                dictionary.get("purchaseOptions"))\
                if "purchaseOptions" in dictionary.keys()\
                else APIHelper.SKIP
        electronic_benefits_transfer =\
            ElectronicBenefitsTransfer1.from_dictionary(
                dictionary.get("electronicBenefitsTransfer"))\
                if "electronicBenefitsTransfer" in dictionary.keys()\
                else APIHelper.SKIP
        loan_options =\
            LoanOptions.from_dictionary(
                dictionary.get("loanOptions"))\
                if "loanOptions" in dictionary.keys()\
                else APIHelper.SKIP
        japan_payment_options =\
            JapanPaymentOptions1.from_dictionary(
                dictionary.get("japanPaymentOptions"))\
                if "japanPaymentOptions" in dictionary.keys()\
                else APIHelper.SKIP
        refund_options =\
            RefundOptions2.from_dictionary(
                dictionary.get("refundOptions"))\
                if "refundOptions" in dictionary.keys()\
                else APIHelper.SKIP

        additional_properties = APIHelper.get_additional_properties(
            dictionary={k: v for k, v in dictionary.items()
                        if k not in cls._names.values()},
            unboxing_function=lambda value: value)

        # Return an object of this model
        return cls(commerce_indicator,
                   processor_id,
                   payment_solution,
                   reconciliation_id,
                   link_id,
                   report_group,
                   visa_checkout_id,
                   purchase_level,
                   industry_data_type,
                   wallet_type,
                   national_net_domestic_data,
                   network_routing_order,
                   recurring_options,
                   bank_transfer_options,
                   purchase_options,
                   electronic_benefits_transfer,
                   loan_options,
                   japan_payment_options,
                   refund_options,
                   additional_properties)

    def __repr__(self):
        """Return a unambiguous string representation."""
        _commerce_indicator=(
            self.commerce_indicator
            if hasattr(self, "commerce_indicator")
            else None
        )
        _processor_id=(
            self.processor_id
            if hasattr(self, "processor_id")
            else None
        )
        _payment_solution=(
            self.payment_solution
            if hasattr(self, "payment_solution")
            else None
        )
        _reconciliation_id=(
            self.reconciliation_id
            if hasattr(self, "reconciliation_id")
            else None
        )
        _link_id=(
            self.link_id
            if hasattr(self, "link_id")
            else None
        )
        _report_group=(
            self.report_group
            if hasattr(self, "report_group")
            else None
        )
        _visa_checkout_id=(
            self.visa_checkout_id
            if hasattr(self, "visa_checkout_id")
            else None
        )
        _purchase_level=(
            self.purchase_level
            if hasattr(self, "purchase_level")
            else None
        )
        _industry_data_type=(
            self.industry_data_type
            if hasattr(self, "industry_data_type")
            else None
        )
        _wallet_type=(
            self.wallet_type
            if hasattr(self, "wallet_type")
            else None
        )
        _national_net_domestic_data=(
            self.national_net_domestic_data
            if hasattr(self, "national_net_domestic_data")
            else None
        )
        _network_routing_order=(
            self.network_routing_order
            if hasattr(self, "network_routing_order")
            else None
        )
        _recurring_options=(
            self.recurring_options
            if hasattr(self, "recurring_options")
            else None
        )
        _bank_transfer_options=(
            self.bank_transfer_options
            if hasattr(self, "bank_transfer_options")
            else None
        )
        _purchase_options=(
            self.purchase_options
            if hasattr(self, "purchase_options")
            else None
        )
        _electronic_benefits_transfer=(
            self.electronic_benefits_transfer
            if hasattr(self, "electronic_benefits_transfer")
            else None
        )
        _loan_options=(
            self.loan_options
            if hasattr(self, "loan_options")
            else None
        )
        _japan_payment_options=(
            self.japan_payment_options
            if hasattr(self, "japan_payment_options")
            else None
        )
        _refund_options=(
            self.refund_options
            if hasattr(self, "refund_options")
            else None
        )
        _additional_properties=self.additional_properties
        return (
            f"{self.__class__.__name__}("
            f"commerce_indicator={_commerce_indicator!r}, "
            f"processor_id={_processor_id!r}, "
            f"payment_solution={_payment_solution!r}, "
            f"reconciliation_id={_reconciliation_id!r}, "
            f"link_id={_link_id!r}, "
            f"report_group={_report_group!r}, "
            f"visa_checkout_id={_visa_checkout_id!r}, "
            f"purchase_level={_purchase_level!r}, "
            f"industry_data_type={_industry_data_type!r}, "
            f"wallet_type={_wallet_type!r}, "
            f"national_net_domestic_data={_national_net_domestic_data!r}, "
            f"network_routing_order={_network_routing_order!r}, "
            f"recurring_options={_recurring_options!r}, "
            f"bank_transfer_options={_bank_transfer_options!r}, "
            f"purchase_options={_purchase_options!r}, "
            f"electronic_benefits_transfer={_electronic_benefits_transfer!r}, "
            f"loan_options={_loan_options!r}, "
            f"japan_payment_options={_japan_payment_options!r}, "
            f"refund_options={_refund_options!r}, "
            f"additional_properties={_additional_properties!r}, "
            f")"
        )

    def __str__(self):
        """Return a human-readable string representation."""
        _commerce_indicator=(
            self.commerce_indicator
            if hasattr(self, "commerce_indicator")
            else None
        )
        _processor_id=(
            self.processor_id
            if hasattr(self, "processor_id")
            else None
        )
        _payment_solution=(
            self.payment_solution
            if hasattr(self, "payment_solution")
            else None
        )
        _reconciliation_id=(
            self.reconciliation_id
            if hasattr(self, "reconciliation_id")
            else None
        )
        _link_id=(
            self.link_id
            if hasattr(self, "link_id")
            else None
        )
        _report_group=(
            self.report_group
            if hasattr(self, "report_group")
            else None
        )
        _visa_checkout_id=(
            self.visa_checkout_id
            if hasattr(self, "visa_checkout_id")
            else None
        )
        _purchase_level=(
            self.purchase_level
            if hasattr(self, "purchase_level")
            else None
        )
        _industry_data_type=(
            self.industry_data_type
            if hasattr(self, "industry_data_type")
            else None
        )
        _wallet_type=(
            self.wallet_type
            if hasattr(self, "wallet_type")
            else None
        )
        _national_net_domestic_data=(
            self.national_net_domestic_data
            if hasattr(self, "national_net_domestic_data")
            else None
        )
        _network_routing_order=(
            self.network_routing_order
            if hasattr(self, "network_routing_order")
            else None
        )
        _recurring_options=(
            self.recurring_options
            if hasattr(self, "recurring_options")
            else None
        )
        _bank_transfer_options=(
            self.bank_transfer_options
            if hasattr(self, "bank_transfer_options")
            else None
        )
        _purchase_options=(
            self.purchase_options
            if hasattr(self, "purchase_options")
            else None
        )
        _electronic_benefits_transfer=(
            self.electronic_benefits_transfer
            if hasattr(self, "electronic_benefits_transfer")
            else None
        )
        _loan_options=(
            self.loan_options
            if hasattr(self, "loan_options")
            else None
        )
        _japan_payment_options=(
            self.japan_payment_options
            if hasattr(self, "japan_payment_options")
            else None
        )
        _refund_options=(
            self.refund_options
            if hasattr(self, "refund_options")
            else None
        )
        _additional_properties=self.additional_properties
        return (
            f"{self.__class__.__name__}("
            f"commerce_indicator={_commerce_indicator!s}, "
            f"processor_id={_processor_id!s}, "
            f"payment_solution={_payment_solution!s}, "
            f"reconciliation_id={_reconciliation_id!s}, "
            f"link_id={_link_id!s}, "
            f"report_group={_report_group!s}, "
            f"visa_checkout_id={_visa_checkout_id!s}, "
            f"purchase_level={_purchase_level!s}, "
            f"industry_data_type={_industry_data_type!s}, "
            f"wallet_type={_wallet_type!s}, "
            f"national_net_domestic_data={_national_net_domestic_data!s}, "
            f"network_routing_order={_network_routing_order!s}, "
            f"recurring_options={_recurring_options!s}, "
            f"bank_transfer_options={_bank_transfer_options!s}, "
            f"purchase_options={_purchase_options!s}, "
            f"electronic_benefits_transfer={_electronic_benefits_transfer!s}, "
            f"loan_options={_loan_options!s}, "
            f"japan_payment_options={_japan_payment_options!s}, "
            f"refund_options={_refund_options!s}, "
            f"additional_properties={_additional_properties!s}, "
            f")"
        )
