cybersource_rest_client 0.0.73 → 0.0.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/lib/AuthenticationSDK/core/MerchantConfig.rb +2 -1
  3. data/lib/cybersource_rest_client/api/batches_api.rb +9 -9
  4. data/lib/cybersource_rest_client/api/bin_lookup_api.rb +5 -5
  5. data/lib/cybersource_rest_client/api/create_new_webhooks_api.rb +6 -6
  6. data/lib/cybersource_rest_client/api/decision_manager_api.rb +3 -3
  7. data/lib/cybersource_rest_client/api/device_de_association_api.rb +168 -0
  8. data/lib/cybersource_rest_client/api/device_search_api.rb +78 -5
  9. data/lib/cybersource_rest_client/api/manage_webhooks_api.rb +9 -9
  10. data/lib/cybersource_rest_client/api/merchant_boarding_api.rb +3 -3
  11. data/lib/cybersource_rest_client/api/payment_tokens_api.rb +96 -0
  12. data/lib/cybersource_rest_client/api/subscriptions_api.rb +5 -2
  13. data/lib/cybersource_rest_client/models/create_order_request.rb +269 -229
  14. data/lib/cybersource_rest_client/models/de_association_request_body.rb +190 -0
  15. data/lib/cybersource_rest_client/models/generate_capture_context_request.rb +1 -1
  16. data/lib/cybersource_rest_client/models/generate_unified_checkout_capture_context_request.rb +2 -2
  17. data/lib/cybersource_rest_client/models/get_subscription_response.rb +15 -5
  18. data/lib/cybersource_rest_client/models/get_subscription_response_reactivation_information.rb +213 -0
  19. data/lib/cybersource_rest_client/models/inline_response_200_10.rb +292 -0
  20. data/lib/cybersource_rest_client/models/{inline_response_200_9_records.rb → inline_response_200_10_records.rb} +3 -3
  21. data/lib/cybersource_rest_client/models/{inline_response_200_9_response_record.rb → inline_response_200_10_response_record.rb} +2 -2
  22. data/lib/cybersource_rest_client/models/{inline_response_200_9_response_record_additional_updates.rb → inline_response_200_10_response_record_additional_updates.rb} +1 -1
  23. data/lib/cybersource_rest_client/models/{inline_response_200_9_source_record.rb → inline_response_200_10_source_record.rb} +1 -1
  24. data/lib/cybersource_rest_client/models/inline_response_200_2.rb +253 -253
  25. data/lib/cybersource_rest_client/models/inline_response_200_5.rb +55 -10
  26. data/lib/cybersource_rest_client/models/inline_response_200_5_devices.rb +357 -0
  27. data/lib/cybersource_rest_client/models/inline_response_200_6.rb +10 -55
  28. data/lib/cybersource_rest_client/models/inline_response_200_7.rb +33 -37
  29. data/lib/cybersource_rest_client/models/{inline_response_200_6_devices.rb → inline_response_200_7_devices.rb} +2 -2
  30. data/lib/cybersource_rest_client/models/{inline_response_200_6_payment_processor_to_terminal_map.rb → inline_response_200_7_payment_processor_to_terminal_map.rb} +1 -1
  31. data/lib/cybersource_rest_client/models/inline_response_200_8.rb +47 -86
  32. data/lib/cybersource_rest_client/models/{inline_response_200_7__embedded.rb → inline_response_200_8__embedded.rb} +2 -2
  33. data/lib/cybersource_rest_client/models/{inline_response_200_7__embedded__links.rb → inline_response_200_8__embedded__links.rb} +2 -2
  34. data/lib/cybersource_rest_client/models/{inline_response_200_7__embedded__links_reports.rb → inline_response_200_8__embedded__links_reports.rb} +1 -1
  35. data/lib/cybersource_rest_client/models/{inline_response_200_7__embedded_batches.rb → inline_response_200_8__embedded_batches.rb} +3 -3
  36. data/lib/cybersource_rest_client/models/{inline_response_200_7__embedded_totals.rb → inline_response_200_8__embedded_totals.rb} +1 -1
  37. data/lib/cybersource_rest_client/models/inline_response_200_8__links.rb +16 -17
  38. data/lib/cybersource_rest_client/models/inline_response_200_9.rb +47 -49
  39. data/lib/cybersource_rest_client/models/inline_response_200_9__links.rb +201 -0
  40. data/lib/cybersource_rest_client/models/{inline_response_200_8__links_report.rb → inline_response_200_9__links_report.rb} +1 -1
  41. data/lib/cybersource_rest_client/models/{inline_response_200_8_billing.rb → inline_response_200_9_billing.rb} +1 -1
  42. data/lib/cybersource_rest_client/models/inline_response_201.rb +227 -218
  43. data/lib/cybersource_rest_client/models/inline_response_201_1.rb +218 -248
  44. data/lib/cybersource_rest_client/models/inline_response_201_2.rb +248 -281
  45. data/lib/cybersource_rest_client/models/{inline_response_201_1_payout_information.rb → inline_response_201_2_payout_information.rb} +216 -216
  46. data/lib/cybersource_rest_client/models/{inline_response_201_1_payout_information_pull_funds.rb → inline_response_201_2_payout_information_pull_funds.rb} +213 -213
  47. data/lib/cybersource_rest_client/models/{inline_response_201_1_payout_information_push_funds.rb → inline_response_201_2_payout_information_push_funds.rb} +417 -417
  48. data/lib/cybersource_rest_client/models/inline_response_201_3.rb +281 -222
  49. data/lib/cybersource_rest_client/models/{inline_response_201_2_integration_information.rb → inline_response_201_3_integration_information.rb} +192 -192
  50. data/lib/cybersource_rest_client/models/{inline_response_201_2_integration_information_tenant_configurations.rb → inline_response_201_3_integration_information_tenant_configurations.rb} +253 -253
  51. data/lib/cybersource_rest_client/models/{inline_response_201_2_organization_information.rb → inline_response_201_3_organization_information.rb} +217 -217
  52. data/lib/cybersource_rest_client/models/{inline_response_201_2_product_information_setups.rb → inline_response_201_3_product_information_setups.rb} +214 -214
  53. data/lib/cybersource_rest_client/models/{inline_response_201_2_registration_information.rb → inline_response_201_3_registration_information.rb} +222 -222
  54. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups.rb → inline_response_201_3_setups.rb} +219 -219
  55. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_commerce_solutions.rb → inline_response_201_3_setups_commerce_solutions.rb} +209 -209
  56. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_payments.rb → inline_response_201_3_setups_payments.rb} +369 -369
  57. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_payments_alternative_payment_methods.rb → inline_response_201_3_setups_payments_alternative_payment_methods.rb} +221 -221
  58. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_payments_alternative_payment_methods_configuration_status.rb → inline_response_201_3_setups_payments_alternative_payment_methods_configuration_status.rb} +200 -200
  59. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_payments_card_processing.rb → inline_response_201_3_setups_payments_card_processing.rb} +199 -199
  60. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_payments_card_processing_configuration_status.rb → inline_response_201_3_setups_payments_card_processing_configuration_status.rb} +255 -255
  61. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_payments_card_processing_subscription_status.rb → inline_response_201_3_setups_payments_card_processing_subscription_status.rb} +234 -234
  62. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_payments_digital_payments.rb → inline_response_201_3_setups_payments_digital_payments.rb} +189 -189
  63. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_risk.rb → inline_response_201_3_setups_risk.rb} +199 -199
  64. data/lib/cybersource_rest_client/models/{inline_response_201_2_setups_value_added_services.rb → inline_response_201_3_setups_value_added_services.rb} +209 -209
  65. data/lib/cybersource_rest_client/models/inline_response_201_4.rb +222 -312
  66. data/lib/cybersource_rest_client/models/{inline_response_201_3_key_information.rb → inline_response_201_4_key_information.rb} +300 -300
  67. data/lib/cybersource_rest_client/models/{inline_response_201_3_key_information_error_information.rb → inline_response_201_4_key_information_error_information.rb} +202 -202
  68. data/lib/cybersource_rest_client/models/{inline_response_201_3_key_information_error_information_details.rb → inline_response_201_4_key_information_error_information_details.rb} +201 -201
  69. data/lib/cybersource_rest_client/models/inline_response_201_5.rb +312 -277
  70. data/lib/cybersource_rest_client/models/inline_response_201_6.rb +277 -202
  71. data/lib/cybersource_rest_client/models/{inline_response_201_5_payloads.rb → inline_response_201_6_payloads.rb} +189 -189
  72. data/lib/cybersource_rest_client/models/{inline_response_201_5_payloads_test_payload.rb → inline_response_201_6_payloads_test_payload.rb} +190 -190
  73. data/lib/cybersource_rest_client/models/inline_response_201_7.rb +202 -0
  74. data/lib/cybersource_rest_client/models/inline_response_201_order_information.rb +189 -0
  75. data/lib/cybersource_rest_client/models/inline_response_201_order_information_ship_to.rb +315 -0
  76. data/lib/cybersource_rest_client/models/inline_response_201_payment_information.rb +199 -0
  77. data/lib/cybersource_rest_client/models/inline_response_201_payment_information_e_wallet.rb +196 -0
  78. data/lib/cybersource_rest_client/models/inline_response_201_payment_information_tokenized_payment_method.rb +213 -0
  79. data/lib/cybersource_rest_client/models/payments_products.rb +1 -1
  80. data/lib/cybersource_rest_client/models/payments_products_unified_checkout.rb +199 -0
  81. data/lib/cybersource_rest_client/models/payments_products_unified_checkout_configuration_information.rb +189 -0
  82. data/lib/cybersource_rest_client/models/payments_products_unified_checkout_configuration_information_configurations.rb +189 -0
  83. data/lib/cybersource_rest_client/models/payments_products_unified_checkout_configuration_information_configurations_features.rb +189 -0
  84. data/lib/cybersource_rest_client/models/payments_products_unified_checkout_configuration_information_configurations_features_paze.rb +213 -0
  85. data/lib/cybersource_rest_client/models/payments_products_unified_checkout_subscription_information.rb +225 -0
  86. data/lib/cybersource_rest_client/models/payments_products_unified_checkout_subscription_information_features.rb +189 -0
  87. data/lib/cybersource_rest_client/models/payments_products_unified_checkout_subscription_information_features_paze_for_unified_checkout.rb +190 -0
  88. data/lib/cybersource_rest_client/models/post_device_search_request.rb +223 -0
  89. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_installment_information.rb +609 -609
  90. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_account_information_card.rb +269 -269
  91. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information.rb +364 -354
  92. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information_tokenized_card.rb +309 -309
  93. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information_tokenized_payment_method.rb +213 -0
  94. data/lib/cybersource_rest_client/models/pts_v2_retrieve_payment_token_get400_response.rb +252 -0
  95. data/lib/cybersource_rest_client/models/pts_v2_retrieve_payment_token_get502_response.rb +240 -0
  96. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information_card.rb +258 -258
  97. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information_tokenized_card.rb +275 -275
  98. data/lib/cybersource_rest_client/models/ptsv2intents_event_information.rb +212 -0
  99. data/lib/cybersource_rest_client/models/ptsv2intents_order_information_ship_to.rb +354 -332
  100. data/lib/cybersource_rest_client/models/ptsv2intents_payment_information.rb +220 -189
  101. data/lib/cybersource_rest_client/models/ptsv2intents_payment_information_e_wallet.rb +196 -0
  102. data/lib/cybersource_rest_client/models/ptsv2intents_payment_information_tokenized_payment_method.rb +241 -0
  103. data/lib/cybersource_rest_client/models/ptsv2intents_processing_information.rb +351 -219
  104. data/lib/cybersource_rest_client/models/ptsv2intents_recipient_information.rb +245 -0
  105. data/lib/cybersource_rest_client/models/ptsv2intents_sender_information.rb +277 -0
  106. data/lib/cybersource_rest_client/models/ptsv2intents_sender_information_account.rb +190 -0
  107. data/lib/cybersource_rest_client/models/ptsv2intents_travel_information.rb +211 -0
  108. data/lib/cybersource_rest_client/models/ptsv2intents_travel_information_agency.rb +245 -0
  109. data/lib/cybersource_rest_client/models/{inline_response_200_7__links.rb → ptsv2intentsid_payment_information.rb} +189 -200
  110. data/lib/cybersource_rest_client/models/ptsv2paymentreferences_order_information_amount_details.rb +417 -400
  111. data/lib/cybersource_rest_client/models/ptsv2paymentreferences_payment_information_card.rb +275 -275
  112. data/lib/cybersource_rest_client/models/ptsv2payments_installment_information.rb +433 -416
  113. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_amount_details.rb +668 -651
  114. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_line_items.rb +716 -699
  115. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information.rb +356 -346
  116. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_card.rb +445 -445
  117. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_tokenized_card.rb +377 -377
  118. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_tokenized_payment_method.rb +196 -0
  119. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_installment_information.rb +604 -604
  120. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information_card.rb +377 -377
  121. data/lib/cybersource_rest_client/models/ptsv2paymenttokens_payment_information.rb +199 -0
  122. data/lib/cybersource_rest_client/models/ptsv2paymenttokens_processing_information.rb +192 -0
  123. data/lib/cybersource_rest_client/models/ptsv2payouts_payment_information_card.rb +258 -258
  124. data/lib/cybersource_rest_client/models/request.rb +199 -0
  125. data/lib/cybersource_rest_client/models/riskv1authenticationresults_payment_information_card.rb +241 -241
  126. data/lib/cybersource_rest_client/models/riskv1authenticationresults_payment_information_tokenized_card.rb +258 -258
  127. data/lib/cybersource_rest_client/models/riskv1authentications_payment_information_tokenized_card.rb +351 -351
  128. data/lib/cybersource_rest_client/models/riskv1authenticationsetups_payment_information_card.rb +268 -268
  129. data/lib/cybersource_rest_client/models/riskv1authenticationsetups_payment_information_tokenized_card.rb +299 -299
  130. data/lib/cybersource_rest_client/models/riskv1decisions_payment_information_card.rb +259 -259
  131. data/lib/cybersource_rest_client/models/riskv1decisions_payment_information_tokenized_card.rb +259 -259
  132. data/lib/cybersource_rest_client/models/riskv1decisions_travel_information_legs.rb +16 -5
  133. data/lib/cybersource_rest_client/models/riskv1liststypeentries_payment_information_card.rb +224 -224
  134. data/lib/cybersource_rest_client/models/tms_bin_lookup_issuer_information.rb +264 -264
  135. data/lib/cybersource_rest_client/models/tms_bin_lookup_payment_account_information_card.rb +277 -277
  136. data/lib/cybersource_rest_client/models/tms_bin_lookup_payment_account_information_card_brands.rb +213 -213
  137. data/lib/cybersource_rest_client/models/tms_bin_lookup_payment_account_information_features.rb +430 -430
  138. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_payment_information_brands.rb +201 -201
  139. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_payment_information_card.rb +365 -365
  140. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_processor_information.rb +12 -1
  141. data/lib/cybersource_rest_client/models/tss_v2_transactions_post201_response__embedded_payment_information_card.rb +218 -218
  142. data/lib/cybersource_rest_client/models/tss_v2_transactions_post201_response__embedded_processor_information.rb +245 -234
  143. data/lib/cybersource_rest_client/models/update_order_request.rb +229 -229
  144. data/lib/cybersource_rest_client/models/upv1capturecontexts_capture_mandate.rb +12 -1
  145. data/lib/cybersource_rest_client/models/upv1capturecontexts_complete_mandate.rb +18 -7
  146. data/lib/cybersource_rest_client.rb +75 -39
  147. metadata +77 -41
  148. data/lib/cybersource_rest_client/api/device_de_association_v3_api.rb +0 -96
@@ -1,651 +1,668 @@
1
- =begin
2
- #CyberSource Merged Spec
3
-
4
- #All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
5
-
6
- OpenAPI spec version: 0.0.1
7
-
8
- Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: 2.4.38
10
- =end
11
-
12
- require 'date'
13
-
14
- module CyberSource
15
- class Ptsv2paymentsOrderInformationAmountDetails
16
- # Amount being charged as gift wrap fee.
17
- attr_accessor :gift_wrap_amount
18
-
19
- # Grand total for the order. This value cannot be negative. You can include a decimal point (.), but no other special characters. CyberSource truncates the amount to the correct number of decimal places. **Note** For CTV, FDCCompass, Paymentech processors, the maximum length for this field is 12. **Important** Some processors have specific requirements and limitations, such as maximum amounts and maximum field lengths. 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. #### Card Present Required to include either this field or `orderInformation.lineItems[].unitPrice` for the order. #### Invoicing / Pay By Link Required for creating a new invoice or payment link. #### PIN Debit 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. 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; however, for all other processors, these fields are required. #### DCC with a Third-Party Provider Set this field to the converted amount that was returned by the DCC provider. You must include either this field or the 1st line item in the order and the specific line-order amount in your request. #### DCC for First Data Not used.
20
- attr_accessor :total_amount
21
-
22
- # Subtotal amount of all the items.This amount (which is the value of all items in the cart, not including the additional amounts such as tax, shipping, etc.) cannot change after a sessions request. When there is a change to any of the additional amounts, this field should be resent in the order request. When the sub total amount changes, you must initiate a new transaction starting with a sessions request. Note The amount value must be a non-negative number containing 2 decimal places and limited to 7 digits before the decimal point. This value can not be changed after a sessions request.
23
- attr_accessor :sub_total_amount
24
-
25
- # 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. #### Tax Calculation Required for international tax and value added tax only. Optional for U.S. and Canadian taxes. Your local currency.
26
- attr_accessor :currency
27
-
28
- # Total discount amount applied to the order.
29
- attr_accessor :discount_amount
30
-
31
- # Total charges for any import or export duties included in the order.
32
- attr_accessor :duty_amount
33
-
34
- # Gratuity or tip amount for restaurants. Allowed only when industryDatatype=restaurant. When your customer uses a debit card or prepaid card, and you receive a partial authorization, the payment networks recommend that you do not submit a capture amount that is higher than the authorized amount. When the capture amount exceeds the partial amount that was approved, the issuer has chargeback rights for the excess amount. Used by **Capture** Optional field. #### CyberSource through VisaNet Restaurant data is supported only on CyberSource through VisaNet when card is present.
35
- attr_accessor :gratuity_amount
36
-
37
- # Total tax amount for all the items in the order.
38
- attr_accessor :tax_amount
39
-
40
- # Flag that indicates whether a national tax is included in the order total. Possible values: - **0**: national tax not included - **1**: national tax included
41
- attr_accessor :national_tax_included
42
-
43
- # Flag that indicates how the merchant manages discounts. Possible values: - **0**: no invoice level discount included - **1**: tax calculated on the postdiscount invoice total - **2**: tax calculated on the prediscount invoice total
44
- attr_accessor :tax_applied_after_discount
45
-
46
- # Flag that indicates how you calculate tax. Possible values: - **0**: net prices with tax calculated at line item level - **1**: net prices with tax calculated at invoice level - **2**: gross prices with tax provided at line item level - **3**: gross prices with tax provided at invoice level - **4**: no tax applies on the invoice for the transaction
47
- attr_accessor :tax_applied_level
48
-
49
- # For tax amounts that can be categorized as one tax type. This field contains the tax type code that corresponds to the entry in the _lineItems.taxAmount_ field. Possible values: - **056**: sales tax (U.S only) - **TX~**: all taxes (Canada only) Note ~ = space.
50
- attr_accessor :tax_type_code
51
-
52
- # 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.
53
- attr_accessor :freight_amount
54
-
55
- # Set this field to the converted amount that was returned by the DCC provider.
56
- attr_accessor :foreign_amount
57
-
58
- # Set this field to the converted amount that was returned by the DCC provider.
59
- attr_accessor :foreign_currency
60
-
61
- # Exchange rate returned by the DCC service. Includes a decimal point and a maximum of 4 decimal places.
62
- attr_accessor :exchange_rate
63
-
64
- # Time stamp for the exchange rate. This value is returned by the DCC service. Format: `YYYYMMDD~HH:MM` where ~ denotes a space.
65
- attr_accessor :exchange_rate_time_stamp
66
-
67
- attr_accessor :surcharge
68
-
69
- # This is a multicurrency field. It contains the transaction amount (field 4), converted to the Currency used to bill the cardholder's account. This field is returned for OCT transactions.
70
- attr_accessor :settlement_amount
71
-
72
- # This is a multicurrency-only field. It contains a 3-digit numeric code that identifies the currency used by the issuer to bill the cardholder's account. This field is returned for OCT transactions.
73
- attr_accessor :settlement_currency
74
-
75
- attr_accessor :amex_additional_amounts
76
-
77
- attr_accessor :tax_details
78
-
79
- # Service fee. Required for service fee transactions.
80
- attr_accessor :service_fee_amount
81
-
82
- # 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.
83
- attr_accessor :original_amount
84
-
85
- # 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)
86
- attr_accessor :original_currency
87
-
88
- # 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.
89
- attr_accessor :cashback_amount
90
-
91
- attr_accessor :currency_conversion
92
-
93
- attr_accessor :oct_surcharge
94
-
95
- attr_accessor :order
96
-
97
- # This API Field contains the anticipated amount details. This supports use cases where the Merchant does not wish to have funds held against the account, but needs to confirm an amount prior to authorization, such as for a trial subscription, reservation service, or loyalty program. In an account verification, the anticipated amount is used to confirm the account has availability to accept purchases.
98
- attr_accessor :anticipated_amount
99
-
100
- # Attribute mapping from ruby-style variable name to JSON key.
101
- def self.attribute_map
102
- {
103
- :'gift_wrap_amount' => :'giftWrapAmount',
104
- :'total_amount' => :'totalAmount',
105
- :'sub_total_amount' => :'subTotalAmount',
106
- :'currency' => :'currency',
107
- :'discount_amount' => :'discountAmount',
108
- :'duty_amount' => :'dutyAmount',
109
- :'gratuity_amount' => :'gratuityAmount',
110
- :'tax_amount' => :'taxAmount',
111
- :'national_tax_included' => :'nationalTaxIncluded',
112
- :'tax_applied_after_discount' => :'taxAppliedAfterDiscount',
113
- :'tax_applied_level' => :'taxAppliedLevel',
114
- :'tax_type_code' => :'taxTypeCode',
115
- :'freight_amount' => :'freightAmount',
116
- :'foreign_amount' => :'foreignAmount',
117
- :'foreign_currency' => :'foreignCurrency',
118
- :'exchange_rate' => :'exchangeRate',
119
- :'exchange_rate_time_stamp' => :'exchangeRateTimeStamp',
120
- :'surcharge' => :'surcharge',
121
- :'settlement_amount' => :'settlementAmount',
122
- :'settlement_currency' => :'settlementCurrency',
123
- :'amex_additional_amounts' => :'amexAdditionalAmounts',
124
- :'tax_details' => :'taxDetails',
125
- :'service_fee_amount' => :'serviceFeeAmount',
126
- :'original_amount' => :'originalAmount',
127
- :'original_currency' => :'originalCurrency',
128
- :'cashback_amount' => :'cashbackAmount',
129
- :'currency_conversion' => :'currencyConversion',
130
- :'oct_surcharge' => :'oct-surcharge',
131
- :'order' => :'order',
132
- :'anticipated_amount' => :'anticipatedAmount'
133
- }
134
- end
135
-
136
- # Attribute mapping from JSON key to ruby-style variable name.
137
- def self.json_map
138
- {
139
- :'gift_wrap_amount' => :'gift_wrap_amount',
140
- :'total_amount' => :'total_amount',
141
- :'sub_total_amount' => :'sub_total_amount',
142
- :'currency' => :'currency',
143
- :'discount_amount' => :'discount_amount',
144
- :'duty_amount' => :'duty_amount',
145
- :'gratuity_amount' => :'gratuity_amount',
146
- :'tax_amount' => :'tax_amount',
147
- :'national_tax_included' => :'national_tax_included',
148
- :'tax_applied_after_discount' => :'tax_applied_after_discount',
149
- :'tax_applied_level' => :'tax_applied_level',
150
- :'tax_type_code' => :'tax_type_code',
151
- :'freight_amount' => :'freight_amount',
152
- :'foreign_amount' => :'foreign_amount',
153
- :'foreign_currency' => :'foreign_currency',
154
- :'exchange_rate' => :'exchange_rate',
155
- :'exchange_rate_time_stamp' => :'exchange_rate_time_stamp',
156
- :'surcharge' => :'surcharge',
157
- :'settlement_amount' => :'settlement_amount',
158
- :'settlement_currency' => :'settlement_currency',
159
- :'amex_additional_amounts' => :'amex_additional_amounts',
160
- :'tax_details' => :'tax_details',
161
- :'service_fee_amount' => :'service_fee_amount',
162
- :'original_amount' => :'original_amount',
163
- :'original_currency' => :'original_currency',
164
- :'cashback_amount' => :'cashback_amount',
165
- :'currency_conversion' => :'currency_conversion',
166
- :'oct_surcharge' => :'oct_surcharge',
167
- :'order' => :'order',
168
- :'anticipated_amount' => :'anticipated_amount'
169
- }
170
- end
171
-
172
- # Attribute type mapping.
173
- def self.swagger_types
174
- {
175
- :'gift_wrap_amount' => :'String',
176
- :'total_amount' => :'String',
177
- :'sub_total_amount' => :'String',
178
- :'currency' => :'String',
179
- :'discount_amount' => :'String',
180
- :'duty_amount' => :'String',
181
- :'gratuity_amount' => :'String',
182
- :'tax_amount' => :'String',
183
- :'national_tax_included' => :'String',
184
- :'tax_applied_after_discount' => :'String',
185
- :'tax_applied_level' => :'String',
186
- :'tax_type_code' => :'String',
187
- :'freight_amount' => :'String',
188
- :'foreign_amount' => :'String',
189
- :'foreign_currency' => :'String',
190
- :'exchange_rate' => :'String',
191
- :'exchange_rate_time_stamp' => :'String',
192
- :'surcharge' => :'Ptsv2paymentsOrderInformationAmountDetailsSurcharge',
193
- :'settlement_amount' => :'String',
194
- :'settlement_currency' => :'String',
195
- :'amex_additional_amounts' => :'Array<Ptsv2paymentsOrderInformationAmountDetailsAmexAdditionalAmounts>',
196
- :'tax_details' => :'Array<Ptsv2paymentsOrderInformationAmountDetailsTaxDetails>',
197
- :'service_fee_amount' => :'String',
198
- :'original_amount' => :'String',
199
- :'original_currency' => :'String',
200
- :'cashback_amount' => :'String',
201
- :'currency_conversion' => :'Ptsv2paymentsOrderInformationAmountDetailsCurrencyConversion',
202
- :'oct_surcharge' => :'Ptsv2paymentsOrderInformationAmountDetailsOctsurcharge',
203
- :'order' => :'Ptsv2paymentsOrderInformationAmountDetailsOrder',
204
- :'anticipated_amount' => :'String'
205
- }
206
- end
207
-
208
- # Initializes the object
209
- # @param [Hash] attributes Model attributes in the form of hash
210
- def initialize(attributes = {})
211
- return unless attributes.is_a?(Hash)
212
-
213
- # convert string to symbol for hash key
214
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
215
-
216
- if attributes.has_key?(:'giftWrapAmount')
217
- self.gift_wrap_amount = attributes[:'giftWrapAmount']
218
- end
219
-
220
- if attributes.has_key?(:'totalAmount')
221
- self.total_amount = attributes[:'totalAmount']
222
- end
223
-
224
- if attributes.has_key?(:'subTotalAmount')
225
- self.sub_total_amount = attributes[:'subTotalAmount']
226
- end
227
-
228
- if attributes.has_key?(:'currency')
229
- self.currency = attributes[:'currency']
230
- end
231
-
232
- if attributes.has_key?(:'discountAmount')
233
- self.discount_amount = attributes[:'discountAmount']
234
- end
235
-
236
- if attributes.has_key?(:'dutyAmount')
237
- self.duty_amount = attributes[:'dutyAmount']
238
- end
239
-
240
- if attributes.has_key?(:'gratuityAmount')
241
- self.gratuity_amount = attributes[:'gratuityAmount']
242
- end
243
-
244
- if attributes.has_key?(:'taxAmount')
245
- self.tax_amount = attributes[:'taxAmount']
246
- end
247
-
248
- if attributes.has_key?(:'nationalTaxIncluded')
249
- self.national_tax_included = attributes[:'nationalTaxIncluded']
250
- end
251
-
252
- if attributes.has_key?(:'taxAppliedAfterDiscount')
253
- self.tax_applied_after_discount = attributes[:'taxAppliedAfterDiscount']
254
- end
255
-
256
- if attributes.has_key?(:'taxAppliedLevel')
257
- self.tax_applied_level = attributes[:'taxAppliedLevel']
258
- end
259
-
260
- if attributes.has_key?(:'taxTypeCode')
261
- self.tax_type_code = attributes[:'taxTypeCode']
262
- end
263
-
264
- if attributes.has_key?(:'freightAmount')
265
- self.freight_amount = attributes[:'freightAmount']
266
- end
267
-
268
- if attributes.has_key?(:'foreignAmount')
269
- self.foreign_amount = attributes[:'foreignAmount']
270
- end
271
-
272
- if attributes.has_key?(:'foreignCurrency')
273
- self.foreign_currency = attributes[:'foreignCurrency']
274
- end
275
-
276
- if attributes.has_key?(:'exchangeRate')
277
- self.exchange_rate = attributes[:'exchangeRate']
278
- end
279
-
280
- if attributes.has_key?(:'exchangeRateTimeStamp')
281
- self.exchange_rate_time_stamp = attributes[:'exchangeRateTimeStamp']
282
- end
283
-
284
- if attributes.has_key?(:'surcharge')
285
- self.surcharge = attributes[:'surcharge']
286
- end
287
-
288
- if attributes.has_key?(:'settlementAmount')
289
- self.settlement_amount = attributes[:'settlementAmount']
290
- end
291
-
292
- if attributes.has_key?(:'settlementCurrency')
293
- self.settlement_currency = attributes[:'settlementCurrency']
294
- end
295
-
296
- if attributes.has_key?(:'amexAdditionalAmounts')
297
- if (value = attributes[:'amexAdditionalAmounts']).is_a?(Array)
298
- self.amex_additional_amounts = value
299
- end
300
- end
301
-
302
- if attributes.has_key?(:'taxDetails')
303
- if (value = attributes[:'taxDetails']).is_a?(Array)
304
- self.tax_details = value
305
- end
306
- end
307
-
308
- if attributes.has_key?(:'serviceFeeAmount')
309
- self.service_fee_amount = attributes[:'serviceFeeAmount']
310
- end
311
-
312
- if attributes.has_key?(:'originalAmount')
313
- self.original_amount = attributes[:'originalAmount']
314
- end
315
-
316
- if attributes.has_key?(:'originalCurrency')
317
- self.original_currency = attributes[:'originalCurrency']
318
- end
319
-
320
- if attributes.has_key?(:'cashbackAmount')
321
- self.cashback_amount = attributes[:'cashbackAmount']
322
- end
323
-
324
- if attributes.has_key?(:'currencyConversion')
325
- self.currency_conversion = attributes[:'currencyConversion']
326
- end
327
-
328
- if attributes.has_key?(:'oct-surcharge')
329
- self.oct_surcharge = attributes[:'oct-surcharge']
330
- end
331
-
332
- if attributes.has_key?(:'order')
333
- self.order = attributes[:'order']
334
- end
335
-
336
- if attributes.has_key?(:'anticipatedAmount')
337
- self.anticipated_amount = attributes[:'anticipatedAmount']
338
- end
339
- end
340
-
341
- # Show invalid properties with the reasons. Usually used together with valid?
342
- # @return Array for valid properties with the reasons
343
- def list_invalid_properties
344
- invalid_properties = Array.new
345
- invalid_properties
346
- end
347
-
348
- # Check to see if the all the properties in the model are valid
349
- # @return true if the model is valid
350
- def valid?
351
- true
352
- end
353
-
354
- # Custom attribute writer method with validation
355
- # @param [Object] gift_wrap_amount Value to be assigned
356
- def gift_wrap_amount=(gift_wrap_amount)
357
- @gift_wrap_amount = gift_wrap_amount
358
- end
359
-
360
- # Custom attribute writer method with validation
361
- # @param [Object] total_amount Value to be assigned
362
- def total_amount=(total_amount)
363
- @total_amount = total_amount
364
- end
365
-
366
- # Custom attribute writer method with validation
367
- # @param [Object] sub_total_amount Value to be assigned
368
- def sub_total_amount=(sub_total_amount)
369
- @sub_total_amount = sub_total_amount
370
- end
371
-
372
- # Custom attribute writer method with validation
373
- # @param [Object] currency Value to be assigned
374
- def currency=(currency)
375
- @currency = currency
376
- end
377
-
378
- # Custom attribute writer method with validation
379
- # @param [Object] discount_amount Value to be assigned
380
- def discount_amount=(discount_amount)
381
- @discount_amount = discount_amount
382
- end
383
-
384
- # Custom attribute writer method with validation
385
- # @param [Object] duty_amount Value to be assigned
386
- def duty_amount=(duty_amount)
387
- @duty_amount = duty_amount
388
- end
389
-
390
- # Custom attribute writer method with validation
391
- # @param [Object] gratuity_amount Value to be assigned
392
- def gratuity_amount=(gratuity_amount)
393
- @gratuity_amount = gratuity_amount
394
- end
395
-
396
- # Custom attribute writer method with validation
397
- # @param [Object] tax_amount Value to be assigned
398
- def tax_amount=(tax_amount)
399
- @tax_amount = tax_amount
400
- end
401
-
402
- # Custom attribute writer method with validation
403
- # @param [Object] national_tax_included Value to be assigned
404
- def national_tax_included=(national_tax_included)
405
- @national_tax_included = national_tax_included
406
- end
407
-
408
- # Custom attribute writer method with validation
409
- # @param [Object] tax_applied_after_discount Value to be assigned
410
- def tax_applied_after_discount=(tax_applied_after_discount)
411
- @tax_applied_after_discount = tax_applied_after_discount
412
- end
413
-
414
- # Custom attribute writer method with validation
415
- # @param [Object] tax_applied_level Value to be assigned
416
- def tax_applied_level=(tax_applied_level)
417
- @tax_applied_level = tax_applied_level
418
- end
419
-
420
- # Custom attribute writer method with validation
421
- # @param [Object] tax_type_code Value to be assigned
422
- def tax_type_code=(tax_type_code)
423
- @tax_type_code = tax_type_code
424
- end
425
-
426
- # Custom attribute writer method with validation
427
- # @param [Object] freight_amount Value to be assigned
428
- def freight_amount=(freight_amount)
429
- @freight_amount = freight_amount
430
- end
431
-
432
- # Custom attribute writer method with validation
433
- # @param [Object] foreign_amount Value to be assigned
434
- def foreign_amount=(foreign_amount)
435
- @foreign_amount = foreign_amount
436
- end
437
-
438
- # Custom attribute writer method with validation
439
- # @param [Object] foreign_currency Value to be assigned
440
- def foreign_currency=(foreign_currency)
441
- @foreign_currency = foreign_currency
442
- end
443
-
444
- # Custom attribute writer method with validation
445
- # @param [Object] exchange_rate Value to be assigned
446
- def exchange_rate=(exchange_rate)
447
- @exchange_rate = exchange_rate
448
- end
449
-
450
- # Custom attribute writer method with validation
451
- # @param [Object] exchange_rate_time_stamp Value to be assigned
452
- def exchange_rate_time_stamp=(exchange_rate_time_stamp)
453
- @exchange_rate_time_stamp = exchange_rate_time_stamp
454
- end
455
-
456
- # Custom attribute writer method with validation
457
- # @param [Object] settlement_amount Value to be assigned
458
- def settlement_amount=(settlement_amount)
459
- @settlement_amount = settlement_amount
460
- end
461
-
462
- # Custom attribute writer method with validation
463
- # @param [Object] settlement_currency Value to be assigned
464
- def settlement_currency=(settlement_currency)
465
- @settlement_currency = settlement_currency
466
- end
467
-
468
- # Custom attribute writer method with validation
469
- # @param [Object] service_fee_amount Value to be assigned
470
- def service_fee_amount=(service_fee_amount)
471
- @service_fee_amount = service_fee_amount
472
- end
473
-
474
- # Custom attribute writer method with validation
475
- # @param [Object] original_amount Value to be assigned
476
- def original_amount=(original_amount)
477
- @original_amount = original_amount
478
- end
479
-
480
- # Custom attribute writer method with validation
481
- # @param [Object] original_currency Value to be assigned
482
- def original_currency=(original_currency)
483
- @original_currency = original_currency
484
- end
485
-
486
- # Custom attribute writer method with validation
487
- # @param [Object] cashback_amount Value to be assigned
488
- def cashback_amount=(cashback_amount)
489
- @cashback_amount = cashback_amount
490
- end
491
-
492
- # Custom attribute writer method with validation
493
- # @param [Object] anticipated_amount Value to be assigned
494
- def anticipated_amount=(anticipated_amount)
495
- @anticipated_amount = anticipated_amount
496
- end
497
-
498
- # Checks equality by comparing each attribute.
499
- # @param [Object] Object to be compared
500
- def ==(o)
501
- return true if self.equal?(o)
502
- self.class == o.class &&
503
- gift_wrap_amount == o.gift_wrap_amount &&
504
- total_amount == o.total_amount &&
505
- sub_total_amount == o.sub_total_amount &&
506
- currency == o.currency &&
507
- discount_amount == o.discount_amount &&
508
- duty_amount == o.duty_amount &&
509
- gratuity_amount == o.gratuity_amount &&
510
- tax_amount == o.tax_amount &&
511
- national_tax_included == o.national_tax_included &&
512
- tax_applied_after_discount == o.tax_applied_after_discount &&
513
- tax_applied_level == o.tax_applied_level &&
514
- tax_type_code == o.tax_type_code &&
515
- freight_amount == o.freight_amount &&
516
- foreign_amount == o.foreign_amount &&
517
- foreign_currency == o.foreign_currency &&
518
- exchange_rate == o.exchange_rate &&
519
- exchange_rate_time_stamp == o.exchange_rate_time_stamp &&
520
- surcharge == o.surcharge &&
521
- settlement_amount == o.settlement_amount &&
522
- settlement_currency == o.settlement_currency &&
523
- amex_additional_amounts == o.amex_additional_amounts &&
524
- tax_details == o.tax_details &&
525
- service_fee_amount == o.service_fee_amount &&
526
- original_amount == o.original_amount &&
527
- original_currency == o.original_currency &&
528
- cashback_amount == o.cashback_amount &&
529
- currency_conversion == o.currency_conversion &&
530
- oct_surcharge == o.oct_surcharge &&
531
- order == o.order &&
532
- anticipated_amount == o.anticipated_amount
533
- end
534
-
535
- # @see the `==` method
536
- # @param [Object] Object to be compared
537
- def eql?(o)
538
- self == o
539
- end
540
-
541
- # Calculates hash code according to all attributes.
542
- # @return [Fixnum] Hash code
543
- def hash
544
- [gift_wrap_amount, total_amount, sub_total_amount, currency, discount_amount, duty_amount, gratuity_amount, tax_amount, national_tax_included, tax_applied_after_discount, tax_applied_level, tax_type_code, freight_amount, foreign_amount, foreign_currency, exchange_rate, exchange_rate_time_stamp, surcharge, settlement_amount, settlement_currency, amex_additional_amounts, tax_details, service_fee_amount, original_amount, original_currency, cashback_amount, currency_conversion, oct_surcharge, order, anticipated_amount].hash
545
- end
546
-
547
- # Builds the object from hash
548
- # @param [Hash] attributes Model attributes in the form of hash
549
- # @return [Object] Returns the model itself
550
- def build_from_hash(attributes)
551
- return nil unless attributes.is_a?(Hash)
552
- self.class.swagger_types.each_pair do |key, type|
553
- if type =~ /\AArray<(.*)>/i
554
- # check to ensure the input is an array given that the the attribute
555
- # is documented as an array but the input is not
556
- if attributes[self.class.attribute_map[key]].is_a?(Array)
557
- self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
558
- end
559
- elsif !attributes[self.class.attribute_map[key]].nil?
560
- self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
561
- end # or else data not found in attributes(hash), not an issue as the data can be optional
562
- end
563
-
564
- self
565
- end
566
-
567
- # Deserializes the data based on type
568
- # @param string type Data type
569
- # @param string value Value to be deserialized
570
- # @return [Object] Deserialized data
571
- def _deserialize(type, value)
572
- case type.to_sym
573
- when :DateTime
574
- DateTime.parse(value)
575
- when :Date
576
- Date.parse(value)
577
- when :String
578
- value.to_s
579
- when :Integer
580
- value.to_i
581
- when :Float
582
- value.to_f
583
- when :BOOLEAN
584
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
585
- true
586
- else
587
- false
588
- end
589
- when :Object
590
- # generic object (usually a Hash), return directly
591
- value
592
- when /\AArray<(?<inner_type>.+)>\z/
593
- inner_type = Regexp.last_match[:inner_type]
594
- value.map { |v| _deserialize(inner_type, v) }
595
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
596
- k_type = Regexp.last_match[:k_type]
597
- v_type = Regexp.last_match[:v_type]
598
- {}.tap do |hash|
599
- value.each do |k, v|
600
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
601
- end
602
- end
603
- else # model
604
- temp_model = CyberSource.const_get(type).new
605
- temp_model.build_from_hash(value)
606
- end
607
- end
608
-
609
- # Returns the string representation of the object
610
- # @return [String] String presentation of the object
611
- def to_s
612
- to_hash.to_s
613
- end
614
-
615
- # to_body is an alias to to_hash (backward compatibility)
616
- # @return [Hash] Returns the object in the form of hash
617
- def to_body
618
- to_hash
619
- end
620
-
621
- # Returns the object in the form of hash
622
- # @return [Hash] Returns the object in the form of hash
623
- def to_hash
624
- hash = {}
625
- self.class.attribute_map.each_pair do |attr, param|
626
- value = self.send(attr)
627
- next if value.nil?
628
- hash[param] = _to_hash(value)
629
- end
630
- hash
631
- end
632
-
633
- # Outputs non-array value in the form of hash
634
- # For object, use to_hash. Otherwise, just return the value
635
- # @param [Object] value Any valid value
636
- # @return [Hash] Returns the value in the form of hash
637
- def _to_hash(value)
638
- if value.is_a?(Array)
639
- value.compact.map { |v| _to_hash(v) }
640
- elsif value.is_a?(Hash)
641
- {}.tap do |hash|
642
- value.each { |k, v| hash[k] = _to_hash(v) }
643
- end
644
- elsif value.respond_to? :to_hash
645
- value.to_hash
646
- else
647
- value
648
- end
649
- end
650
- end
651
- end
1
+ =begin
2
+ #CyberSource Merged Spec
3
+
4
+ #All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
5
+
6
+ OpenAPI spec version: 0.0.1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.38
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module CyberSource
15
+ class Ptsv2paymentsOrderInformationAmountDetails
16
+ # Amount being charged as gift wrap fee.
17
+ attr_accessor :gift_wrap_amount
18
+
19
+ # Invoice amount. The invoice amount issued by the Merchant to the Cardholder, which includes VAT (excluding items such as TIPS or CASHBACK). For transactions that do not have applicable Benefit Laws, the field may be entered as zeros. This field is only applicable for Uruguay market. Example: 100.00 Uruguay The value for this field corresponds to the following data in the TC 33 capture file: - Record: CP01 TCR9 - Position: 7-18 - Field: Invoice Amount
20
+ attr_accessor :invoice_amount
21
+
22
+ # Grand total for the order. This value cannot be negative. You can include a decimal point (.), but no other special characters. CyberSource truncates the amount to the correct number of decimal places. **Note** For CTV, FDCCompass, Paymentech processors, the maximum length for this field is 12. **Important** Some processors have specific requirements and limitations, such as maximum amounts and maximum field lengths. 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. #### Card Present Required to include either this field or `orderInformation.lineItems[].unitPrice` for the order. #### Invoicing / Pay By Link Required for creating a new invoice or payment link. #### PIN Debit 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. 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; however, for all other processors, these fields are required. #### DCC with a Third-Party Provider Set this field to the converted amount that was returned by the DCC provider. You must include either this field or the 1st line item in the order and the specific line-order amount in your request. #### DCC for First Data Not used.
23
+ attr_accessor :total_amount
24
+
25
+ # Subtotal amount of all the items.This amount (which is the value of all items in the cart, not including the additional amounts such as tax, shipping, etc.) cannot change after a sessions request. When there is a change to any of the additional amounts, this field should be resent in the order request. When the sub total amount changes, you must initiate a new transaction starting with a sessions request. Note The amount value must be a non-negative number containing 2 decimal places and limited to 7 digits before the decimal point. This value can not be changed after a sessions request.
26
+ attr_accessor :sub_total_amount
27
+
28
+ # 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. #### Tax Calculation Required for international tax and value added tax only. Optional for U.S. and Canadian taxes. Your local currency.
29
+ attr_accessor :currency
30
+
31
+ # Total discount amount applied to the order.
32
+ attr_accessor :discount_amount
33
+
34
+ # Total charges for any import or export duties included in the order.
35
+ attr_accessor :duty_amount
36
+
37
+ # Gratuity or tip amount for restaurants. Allowed only when industryDatatype=restaurant. When your customer uses a debit card or prepaid card, and you receive a partial authorization, the payment networks recommend that you do not submit a capture amount that is higher than the authorized amount. When the capture amount exceeds the partial amount that was approved, the issuer has chargeback rights for the excess amount. Used by **Capture** Optional field. #### CyberSource through VisaNet Restaurant data is supported only on CyberSource through VisaNet when card is present.
38
+ attr_accessor :gratuity_amount
39
+
40
+ # Total tax amount for all the items in the order.
41
+ attr_accessor :tax_amount
42
+
43
+ # Flag that indicates whether a national tax is included in the order total. Possible values: - **0**: national tax not included - **1**: national tax included
44
+ attr_accessor :national_tax_included
45
+
46
+ # Flag that indicates how the merchant manages discounts. Possible values: - **0**: no invoice level discount included - **1**: tax calculated on the postdiscount invoice total - **2**: tax calculated on the prediscount invoice total
47
+ attr_accessor :tax_applied_after_discount
48
+
49
+ # Flag that indicates how you calculate tax. Possible values: - **0**: net prices with tax calculated at line item level - **1**: net prices with tax calculated at invoice level - **2**: gross prices with tax provided at line item level - **3**: gross prices with tax provided at invoice level - **4**: no tax applies on the invoice for the transaction
50
+ attr_accessor :tax_applied_level
51
+
52
+ # For tax amounts that can be categorized as one tax type. This field contains the tax type code that corresponds to the entry in the _lineItems.taxAmount_ field. Possible values: - **056**: sales tax (U.S only) - **TX~**: all taxes (Canada only) Note ~ = space.
53
+ attr_accessor :tax_type_code
54
+
55
+ # 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.
56
+ attr_accessor :freight_amount
57
+
58
+ # Set this field to the converted amount that was returned by the DCC provider.
59
+ attr_accessor :foreign_amount
60
+
61
+ # Set this field to the converted amount that was returned by the DCC provider.
62
+ attr_accessor :foreign_currency
63
+
64
+ # Exchange rate returned by the DCC service. Includes a decimal point and a maximum of 4 decimal places.
65
+ attr_accessor :exchange_rate
66
+
67
+ # Time stamp for the exchange rate. This value is returned by the DCC service. Format: `YYYYMMDD~HH:MM` where ~ denotes a space.
68
+ attr_accessor :exchange_rate_time_stamp
69
+
70
+ attr_accessor :surcharge
71
+
72
+ # This is a multicurrency field. It contains the transaction amount (field 4), converted to the Currency used to bill the cardholder's account. This field is returned for OCT transactions.
73
+ attr_accessor :settlement_amount
74
+
75
+ # This is a multicurrency-only field. It contains a 3-digit numeric code that identifies the currency used by the issuer to bill the cardholder's account. This field is returned for OCT transactions.
76
+ attr_accessor :settlement_currency
77
+
78
+ attr_accessor :amex_additional_amounts
79
+
80
+ attr_accessor :tax_details
81
+
82
+ # Service fee. Required for service fee transactions.
83
+ attr_accessor :service_fee_amount
84
+
85
+ # 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.
86
+ attr_accessor :original_amount
87
+
88
+ # 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)
89
+ attr_accessor :original_currency
90
+
91
+ # 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.
92
+ attr_accessor :cashback_amount
93
+
94
+ attr_accessor :currency_conversion
95
+
96
+ attr_accessor :oct_surcharge
97
+
98
+ attr_accessor :order
99
+
100
+ # This API Field contains the anticipated amount details. This supports use cases where the Merchant does not wish to have funds held against the account, but needs to confirm an amount prior to authorization, such as for a trial subscription, reservation service, or loyalty program. In an account verification, the anticipated amount is used to confirm the account has availability to accept purchases.
101
+ attr_accessor :anticipated_amount
102
+
103
+ # Attribute mapping from ruby-style variable name to JSON key.
104
+ def self.attribute_map
105
+ {
106
+ :'gift_wrap_amount' => :'giftWrapAmount',
107
+ :'invoice_amount' => :'invoiceAmount',
108
+ :'total_amount' => :'totalAmount',
109
+ :'sub_total_amount' => :'subTotalAmount',
110
+ :'currency' => :'currency',
111
+ :'discount_amount' => :'discountAmount',
112
+ :'duty_amount' => :'dutyAmount',
113
+ :'gratuity_amount' => :'gratuityAmount',
114
+ :'tax_amount' => :'taxAmount',
115
+ :'national_tax_included' => :'nationalTaxIncluded',
116
+ :'tax_applied_after_discount' => :'taxAppliedAfterDiscount',
117
+ :'tax_applied_level' => :'taxAppliedLevel',
118
+ :'tax_type_code' => :'taxTypeCode',
119
+ :'freight_amount' => :'freightAmount',
120
+ :'foreign_amount' => :'foreignAmount',
121
+ :'foreign_currency' => :'foreignCurrency',
122
+ :'exchange_rate' => :'exchangeRate',
123
+ :'exchange_rate_time_stamp' => :'exchangeRateTimeStamp',
124
+ :'surcharge' => :'surcharge',
125
+ :'settlement_amount' => :'settlementAmount',
126
+ :'settlement_currency' => :'settlementCurrency',
127
+ :'amex_additional_amounts' => :'amexAdditionalAmounts',
128
+ :'tax_details' => :'taxDetails',
129
+ :'service_fee_amount' => :'serviceFeeAmount',
130
+ :'original_amount' => :'originalAmount',
131
+ :'original_currency' => :'originalCurrency',
132
+ :'cashback_amount' => :'cashbackAmount',
133
+ :'currency_conversion' => :'currencyConversion',
134
+ :'oct_surcharge' => :'oct-surcharge',
135
+ :'order' => :'order',
136
+ :'anticipated_amount' => :'anticipatedAmount'
137
+ }
138
+ end
139
+
140
+ # Attribute mapping from JSON key to ruby-style variable name.
141
+ def self.json_map
142
+ {
143
+ :'gift_wrap_amount' => :'gift_wrap_amount',
144
+ :'invoice_amount' => :'invoice_amount',
145
+ :'total_amount' => :'total_amount',
146
+ :'sub_total_amount' => :'sub_total_amount',
147
+ :'currency' => :'currency',
148
+ :'discount_amount' => :'discount_amount',
149
+ :'duty_amount' => :'duty_amount',
150
+ :'gratuity_amount' => :'gratuity_amount',
151
+ :'tax_amount' => :'tax_amount',
152
+ :'national_tax_included' => :'national_tax_included',
153
+ :'tax_applied_after_discount' => :'tax_applied_after_discount',
154
+ :'tax_applied_level' => :'tax_applied_level',
155
+ :'tax_type_code' => :'tax_type_code',
156
+ :'freight_amount' => :'freight_amount',
157
+ :'foreign_amount' => :'foreign_amount',
158
+ :'foreign_currency' => :'foreign_currency',
159
+ :'exchange_rate' => :'exchange_rate',
160
+ :'exchange_rate_time_stamp' => :'exchange_rate_time_stamp',
161
+ :'surcharge' => :'surcharge',
162
+ :'settlement_amount' => :'settlement_amount',
163
+ :'settlement_currency' => :'settlement_currency',
164
+ :'amex_additional_amounts' => :'amex_additional_amounts',
165
+ :'tax_details' => :'tax_details',
166
+ :'service_fee_amount' => :'service_fee_amount',
167
+ :'original_amount' => :'original_amount',
168
+ :'original_currency' => :'original_currency',
169
+ :'cashback_amount' => :'cashback_amount',
170
+ :'currency_conversion' => :'currency_conversion',
171
+ :'oct_surcharge' => :'oct_surcharge',
172
+ :'order' => :'order',
173
+ :'anticipated_amount' => :'anticipated_amount'
174
+ }
175
+ end
176
+
177
+ # Attribute type mapping.
178
+ def self.swagger_types
179
+ {
180
+ :'gift_wrap_amount' => :'String',
181
+ :'invoice_amount' => :'String',
182
+ :'total_amount' => :'String',
183
+ :'sub_total_amount' => :'String',
184
+ :'currency' => :'String',
185
+ :'discount_amount' => :'String',
186
+ :'duty_amount' => :'String',
187
+ :'gratuity_amount' => :'String',
188
+ :'tax_amount' => :'String',
189
+ :'national_tax_included' => :'String',
190
+ :'tax_applied_after_discount' => :'String',
191
+ :'tax_applied_level' => :'String',
192
+ :'tax_type_code' => :'String',
193
+ :'freight_amount' => :'String',
194
+ :'foreign_amount' => :'String',
195
+ :'foreign_currency' => :'String',
196
+ :'exchange_rate' => :'String',
197
+ :'exchange_rate_time_stamp' => :'String',
198
+ :'surcharge' => :'Ptsv2paymentsOrderInformationAmountDetailsSurcharge',
199
+ :'settlement_amount' => :'String',
200
+ :'settlement_currency' => :'String',
201
+ :'amex_additional_amounts' => :'Array<Ptsv2paymentsOrderInformationAmountDetailsAmexAdditionalAmounts>',
202
+ :'tax_details' => :'Array<Ptsv2paymentsOrderInformationAmountDetailsTaxDetails>',
203
+ :'service_fee_amount' => :'String',
204
+ :'original_amount' => :'String',
205
+ :'original_currency' => :'String',
206
+ :'cashback_amount' => :'String',
207
+ :'currency_conversion' => :'Ptsv2paymentsOrderInformationAmountDetailsCurrencyConversion',
208
+ :'oct_surcharge' => :'Ptsv2paymentsOrderInformationAmountDetailsOctsurcharge',
209
+ :'order' => :'Ptsv2paymentsOrderInformationAmountDetailsOrder',
210
+ :'anticipated_amount' => :'String'
211
+ }
212
+ end
213
+
214
+ # Initializes the object
215
+ # @param [Hash] attributes Model attributes in the form of hash
216
+ def initialize(attributes = {})
217
+ return unless attributes.is_a?(Hash)
218
+
219
+ # convert string to symbol for hash key
220
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
221
+
222
+ if attributes.has_key?(:'giftWrapAmount')
223
+ self.gift_wrap_amount = attributes[:'giftWrapAmount']
224
+ end
225
+
226
+ if attributes.has_key?(:'invoiceAmount')
227
+ self.invoice_amount = attributes[:'invoiceAmount']
228
+ end
229
+
230
+ if attributes.has_key?(:'totalAmount')
231
+ self.total_amount = attributes[:'totalAmount']
232
+ end
233
+
234
+ if attributes.has_key?(:'subTotalAmount')
235
+ self.sub_total_amount = attributes[:'subTotalAmount']
236
+ end
237
+
238
+ if attributes.has_key?(:'currency')
239
+ self.currency = attributes[:'currency']
240
+ end
241
+
242
+ if attributes.has_key?(:'discountAmount')
243
+ self.discount_amount = attributes[:'discountAmount']
244
+ end
245
+
246
+ if attributes.has_key?(:'dutyAmount')
247
+ self.duty_amount = attributes[:'dutyAmount']
248
+ end
249
+
250
+ if attributes.has_key?(:'gratuityAmount')
251
+ self.gratuity_amount = attributes[:'gratuityAmount']
252
+ end
253
+
254
+ if attributes.has_key?(:'taxAmount')
255
+ self.tax_amount = attributes[:'taxAmount']
256
+ end
257
+
258
+ if attributes.has_key?(:'nationalTaxIncluded')
259
+ self.national_tax_included = attributes[:'nationalTaxIncluded']
260
+ end
261
+
262
+ if attributes.has_key?(:'taxAppliedAfterDiscount')
263
+ self.tax_applied_after_discount = attributes[:'taxAppliedAfterDiscount']
264
+ end
265
+
266
+ if attributes.has_key?(:'taxAppliedLevel')
267
+ self.tax_applied_level = attributes[:'taxAppliedLevel']
268
+ end
269
+
270
+ if attributes.has_key?(:'taxTypeCode')
271
+ self.tax_type_code = attributes[:'taxTypeCode']
272
+ end
273
+
274
+ if attributes.has_key?(:'freightAmount')
275
+ self.freight_amount = attributes[:'freightAmount']
276
+ end
277
+
278
+ if attributes.has_key?(:'foreignAmount')
279
+ self.foreign_amount = attributes[:'foreignAmount']
280
+ end
281
+
282
+ if attributes.has_key?(:'foreignCurrency')
283
+ self.foreign_currency = attributes[:'foreignCurrency']
284
+ end
285
+
286
+ if attributes.has_key?(:'exchangeRate')
287
+ self.exchange_rate = attributes[:'exchangeRate']
288
+ end
289
+
290
+ if attributes.has_key?(:'exchangeRateTimeStamp')
291
+ self.exchange_rate_time_stamp = attributes[:'exchangeRateTimeStamp']
292
+ end
293
+
294
+ if attributes.has_key?(:'surcharge')
295
+ self.surcharge = attributes[:'surcharge']
296
+ end
297
+
298
+ if attributes.has_key?(:'settlementAmount')
299
+ self.settlement_amount = attributes[:'settlementAmount']
300
+ end
301
+
302
+ if attributes.has_key?(:'settlementCurrency')
303
+ self.settlement_currency = attributes[:'settlementCurrency']
304
+ end
305
+
306
+ if attributes.has_key?(:'amexAdditionalAmounts')
307
+ if (value = attributes[:'amexAdditionalAmounts']).is_a?(Array)
308
+ self.amex_additional_amounts = value
309
+ end
310
+ end
311
+
312
+ if attributes.has_key?(:'taxDetails')
313
+ if (value = attributes[:'taxDetails']).is_a?(Array)
314
+ self.tax_details = value
315
+ end
316
+ end
317
+
318
+ if attributes.has_key?(:'serviceFeeAmount')
319
+ self.service_fee_amount = attributes[:'serviceFeeAmount']
320
+ end
321
+
322
+ if attributes.has_key?(:'originalAmount')
323
+ self.original_amount = attributes[:'originalAmount']
324
+ end
325
+
326
+ if attributes.has_key?(:'originalCurrency')
327
+ self.original_currency = attributes[:'originalCurrency']
328
+ end
329
+
330
+ if attributes.has_key?(:'cashbackAmount')
331
+ self.cashback_amount = attributes[:'cashbackAmount']
332
+ end
333
+
334
+ if attributes.has_key?(:'currencyConversion')
335
+ self.currency_conversion = attributes[:'currencyConversion']
336
+ end
337
+
338
+ if attributes.has_key?(:'oct-surcharge')
339
+ self.oct_surcharge = attributes[:'oct-surcharge']
340
+ end
341
+
342
+ if attributes.has_key?(:'order')
343
+ self.order = attributes[:'order']
344
+ end
345
+
346
+ if attributes.has_key?(:'anticipatedAmount')
347
+ self.anticipated_amount = attributes[:'anticipatedAmount']
348
+ end
349
+ end
350
+
351
+ # Show invalid properties with the reasons. Usually used together with valid?
352
+ # @return Array for valid properties with the reasons
353
+ def list_invalid_properties
354
+ invalid_properties = Array.new
355
+ invalid_properties
356
+ end
357
+
358
+ # Check to see if the all the properties in the model are valid
359
+ # @return true if the model is valid
360
+ def valid?
361
+ true
362
+ end
363
+
364
+ # Custom attribute writer method with validation
365
+ # @param [Object] gift_wrap_amount Value to be assigned
366
+ def gift_wrap_amount=(gift_wrap_amount)
367
+ @gift_wrap_amount = gift_wrap_amount
368
+ end
369
+
370
+ # Custom attribute writer method with validation
371
+ # @param [Object] invoice_amount Value to be assigned
372
+ def invoice_amount=(invoice_amount)
373
+ @invoice_amount = invoice_amount
374
+ end
375
+
376
+ # Custom attribute writer method with validation
377
+ # @param [Object] total_amount Value to be assigned
378
+ def total_amount=(total_amount)
379
+ @total_amount = total_amount
380
+ end
381
+
382
+ # Custom attribute writer method with validation
383
+ # @param [Object] sub_total_amount Value to be assigned
384
+ def sub_total_amount=(sub_total_amount)
385
+ @sub_total_amount = sub_total_amount
386
+ end
387
+
388
+ # Custom attribute writer method with validation
389
+ # @param [Object] currency Value to be assigned
390
+ def currency=(currency)
391
+ @currency = currency
392
+ end
393
+
394
+ # Custom attribute writer method with validation
395
+ # @param [Object] discount_amount Value to be assigned
396
+ def discount_amount=(discount_amount)
397
+ @discount_amount = discount_amount
398
+ end
399
+
400
+ # Custom attribute writer method with validation
401
+ # @param [Object] duty_amount Value to be assigned
402
+ def duty_amount=(duty_amount)
403
+ @duty_amount = duty_amount
404
+ end
405
+
406
+ # Custom attribute writer method with validation
407
+ # @param [Object] gratuity_amount Value to be assigned
408
+ def gratuity_amount=(gratuity_amount)
409
+ @gratuity_amount = gratuity_amount
410
+ end
411
+
412
+ # Custom attribute writer method with validation
413
+ # @param [Object] tax_amount Value to be assigned
414
+ def tax_amount=(tax_amount)
415
+ @tax_amount = tax_amount
416
+ end
417
+
418
+ # Custom attribute writer method with validation
419
+ # @param [Object] national_tax_included Value to be assigned
420
+ def national_tax_included=(national_tax_included)
421
+ @national_tax_included = national_tax_included
422
+ end
423
+
424
+ # Custom attribute writer method with validation
425
+ # @param [Object] tax_applied_after_discount Value to be assigned
426
+ def tax_applied_after_discount=(tax_applied_after_discount)
427
+ @tax_applied_after_discount = tax_applied_after_discount
428
+ end
429
+
430
+ # Custom attribute writer method with validation
431
+ # @param [Object] tax_applied_level Value to be assigned
432
+ def tax_applied_level=(tax_applied_level)
433
+ @tax_applied_level = tax_applied_level
434
+ end
435
+
436
+ # Custom attribute writer method with validation
437
+ # @param [Object] tax_type_code Value to be assigned
438
+ def tax_type_code=(tax_type_code)
439
+ @tax_type_code = tax_type_code
440
+ end
441
+
442
+ # Custom attribute writer method with validation
443
+ # @param [Object] freight_amount Value to be assigned
444
+ def freight_amount=(freight_amount)
445
+ @freight_amount = freight_amount
446
+ end
447
+
448
+ # Custom attribute writer method with validation
449
+ # @param [Object] foreign_amount Value to be assigned
450
+ def foreign_amount=(foreign_amount)
451
+ @foreign_amount = foreign_amount
452
+ end
453
+
454
+ # Custom attribute writer method with validation
455
+ # @param [Object] foreign_currency Value to be assigned
456
+ def foreign_currency=(foreign_currency)
457
+ @foreign_currency = foreign_currency
458
+ end
459
+
460
+ # Custom attribute writer method with validation
461
+ # @param [Object] exchange_rate Value to be assigned
462
+ def exchange_rate=(exchange_rate)
463
+ @exchange_rate = exchange_rate
464
+ end
465
+
466
+ # Custom attribute writer method with validation
467
+ # @param [Object] exchange_rate_time_stamp Value to be assigned
468
+ def exchange_rate_time_stamp=(exchange_rate_time_stamp)
469
+ @exchange_rate_time_stamp = exchange_rate_time_stamp
470
+ end
471
+
472
+ # Custom attribute writer method with validation
473
+ # @param [Object] settlement_amount Value to be assigned
474
+ def settlement_amount=(settlement_amount)
475
+ @settlement_amount = settlement_amount
476
+ end
477
+
478
+ # Custom attribute writer method with validation
479
+ # @param [Object] settlement_currency Value to be assigned
480
+ def settlement_currency=(settlement_currency)
481
+ @settlement_currency = settlement_currency
482
+ end
483
+
484
+ # Custom attribute writer method with validation
485
+ # @param [Object] service_fee_amount Value to be assigned
486
+ def service_fee_amount=(service_fee_amount)
487
+ @service_fee_amount = service_fee_amount
488
+ end
489
+
490
+ # Custom attribute writer method with validation
491
+ # @param [Object] original_amount Value to be assigned
492
+ def original_amount=(original_amount)
493
+ @original_amount = original_amount
494
+ end
495
+
496
+ # Custom attribute writer method with validation
497
+ # @param [Object] original_currency Value to be assigned
498
+ def original_currency=(original_currency)
499
+ @original_currency = original_currency
500
+ end
501
+
502
+ # Custom attribute writer method with validation
503
+ # @param [Object] cashback_amount Value to be assigned
504
+ def cashback_amount=(cashback_amount)
505
+ @cashback_amount = cashback_amount
506
+ end
507
+
508
+ # Custom attribute writer method with validation
509
+ # @param [Object] anticipated_amount Value to be assigned
510
+ def anticipated_amount=(anticipated_amount)
511
+ @anticipated_amount = anticipated_amount
512
+ end
513
+
514
+ # Checks equality by comparing each attribute.
515
+ # @param [Object] Object to be compared
516
+ def ==(o)
517
+ return true if self.equal?(o)
518
+ self.class == o.class &&
519
+ gift_wrap_amount == o.gift_wrap_amount &&
520
+ invoice_amount == o.invoice_amount &&
521
+ total_amount == o.total_amount &&
522
+ sub_total_amount == o.sub_total_amount &&
523
+ currency == o.currency &&
524
+ discount_amount == o.discount_amount &&
525
+ duty_amount == o.duty_amount &&
526
+ gratuity_amount == o.gratuity_amount &&
527
+ tax_amount == o.tax_amount &&
528
+ national_tax_included == o.national_tax_included &&
529
+ tax_applied_after_discount == o.tax_applied_after_discount &&
530
+ tax_applied_level == o.tax_applied_level &&
531
+ tax_type_code == o.tax_type_code &&
532
+ freight_amount == o.freight_amount &&
533
+ foreign_amount == o.foreign_amount &&
534
+ foreign_currency == o.foreign_currency &&
535
+ exchange_rate == o.exchange_rate &&
536
+ exchange_rate_time_stamp == o.exchange_rate_time_stamp &&
537
+ surcharge == o.surcharge &&
538
+ settlement_amount == o.settlement_amount &&
539
+ settlement_currency == o.settlement_currency &&
540
+ amex_additional_amounts == o.amex_additional_amounts &&
541
+ tax_details == o.tax_details &&
542
+ service_fee_amount == o.service_fee_amount &&
543
+ original_amount == o.original_amount &&
544
+ original_currency == o.original_currency &&
545
+ cashback_amount == o.cashback_amount &&
546
+ currency_conversion == o.currency_conversion &&
547
+ oct_surcharge == o.oct_surcharge &&
548
+ order == o.order &&
549
+ anticipated_amount == o.anticipated_amount
550
+ end
551
+
552
+ # @see the `==` method
553
+ # @param [Object] Object to be compared
554
+ def eql?(o)
555
+ self == o
556
+ end
557
+
558
+ # Calculates hash code according to all attributes.
559
+ # @return [Fixnum] Hash code
560
+ def hash
561
+ [gift_wrap_amount, invoice_amount, total_amount, sub_total_amount, currency, discount_amount, duty_amount, gratuity_amount, tax_amount, national_tax_included, tax_applied_after_discount, tax_applied_level, tax_type_code, freight_amount, foreign_amount, foreign_currency, exchange_rate, exchange_rate_time_stamp, surcharge, settlement_amount, settlement_currency, amex_additional_amounts, tax_details, service_fee_amount, original_amount, original_currency, cashback_amount, currency_conversion, oct_surcharge, order, anticipated_amount].hash
562
+ end
563
+
564
+ # Builds the object from hash
565
+ # @param [Hash] attributes Model attributes in the form of hash
566
+ # @return [Object] Returns the model itself
567
+ def build_from_hash(attributes)
568
+ return nil unless attributes.is_a?(Hash)
569
+ self.class.swagger_types.each_pair do |key, type|
570
+ if type =~ /\AArray<(.*)>/i
571
+ # check to ensure the input is an array given that the the attribute
572
+ # is documented as an array but the input is not
573
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
574
+ self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
575
+ end
576
+ elsif !attributes[self.class.attribute_map[key]].nil?
577
+ self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
578
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
579
+ end
580
+
581
+ self
582
+ end
583
+
584
+ # Deserializes the data based on type
585
+ # @param string type Data type
586
+ # @param string value Value to be deserialized
587
+ # @return [Object] Deserialized data
588
+ def _deserialize(type, value)
589
+ case type.to_sym
590
+ when :DateTime
591
+ DateTime.parse(value)
592
+ when :Date
593
+ Date.parse(value)
594
+ when :String
595
+ value.to_s
596
+ when :Integer
597
+ value.to_i
598
+ when :Float
599
+ value.to_f
600
+ when :BOOLEAN
601
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
602
+ true
603
+ else
604
+ false
605
+ end
606
+ when :Object
607
+ # generic object (usually a Hash), return directly
608
+ value
609
+ when /\AArray<(?<inner_type>.+)>\z/
610
+ inner_type = Regexp.last_match[:inner_type]
611
+ value.map { |v| _deserialize(inner_type, v) }
612
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
613
+ k_type = Regexp.last_match[:k_type]
614
+ v_type = Regexp.last_match[:v_type]
615
+ {}.tap do |hash|
616
+ value.each do |k, v|
617
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
618
+ end
619
+ end
620
+ else # model
621
+ temp_model = CyberSource.const_get(type).new
622
+ temp_model.build_from_hash(value)
623
+ end
624
+ end
625
+
626
+ # Returns the string representation of the object
627
+ # @return [String] String presentation of the object
628
+ def to_s
629
+ to_hash.to_s
630
+ end
631
+
632
+ # to_body is an alias to to_hash (backward compatibility)
633
+ # @return [Hash] Returns the object in the form of hash
634
+ def to_body
635
+ to_hash
636
+ end
637
+
638
+ # Returns the object in the form of hash
639
+ # @return [Hash] Returns the object in the form of hash
640
+ def to_hash
641
+ hash = {}
642
+ self.class.attribute_map.each_pair do |attr, param|
643
+ value = self.send(attr)
644
+ next if value.nil?
645
+ hash[param] = _to_hash(value)
646
+ end
647
+ hash
648
+ end
649
+
650
+ # Outputs non-array value in the form of hash
651
+ # For object, use to_hash. Otherwise, just return the value
652
+ # @param [Object] value Any valid value
653
+ # @return [Hash] Returns the value in the form of hash
654
+ def _to_hash(value)
655
+ if value.is_a?(Array)
656
+ value.compact.map { |v| _to_hash(v) }
657
+ elsif value.is_a?(Hash)
658
+ {}.tap do |hash|
659
+ value.each { |k, v| hash[k] = _to_hash(v) }
660
+ end
661
+ elsif value.respond_to? :to_hash
662
+ value.to_hash
663
+ else
664
+ value
665
+ end
666
+ end
667
+ end
668
+ end