Class: Dodopayments::Models::Payment

Inherits:
Internal::Type::BaseModel show all
Defined in:
lib/dodopayments/models/payment.rb,
sig/dodopayments/models/payment.rbs

Overview

See Also:

  • Dodopayments::Resources::Payments#retrieve

Direct Known Subclasses

WebhookPayload::Data::Payment

Defined Under Namespace

Modules: PaymentProvider Classes: FailureDetails, ProductCart

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Internal::Type::BaseModel

==, #==, #[], coerce, #deconstruct_keys, #deep_to_h, dump, fields, hash, #hash, inherited, inspect, #inspect, known_fields, optional, recursively_to_h, required, #to_h, #to_json, #to_s, to_sorbet_type, #to_yaml

Methods included from Internal::Type::Converter

#coerce, coerce, #dump, dump, #inspect, inspect, meta_info, new_coerce_state, type_info

Methods included from Internal::Util::SorbetRuntimeSupport

#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type, to_sorbet_type

Constructor Details

#initialize(billing:, brand_id:, business_id:, created_at:, currency:, customer:, digital_products_delivered:, disputes:, is_update_payment_method:, metadata:, payment_id:, payment_provider:, refunds:, retry_attempt:, settlement_amount:, settlement_currency:, total_amount:, card_holder_name: nil, card_issuing_country: nil, card_last_four: nil, card_network: nil, card_type: nil, checkout_session_id: nil, custom_field_responses: nil, discount_id: nil, discounts: nil, error_code: nil, error_message: nil, failure_details: nil, invoice_id: nil, invoice_url: nil, payment_link: nil, payment_method: nil, payment_method_id: nil, payment_method_type: nil, product_cart: nil, refund_status: nil, settlement_tax: nil, status: nil, subscription_id: nil, tax: nil, updated_at: nil) ⇒ Object

Some parameter documentations has been truncated, see Dodopayments::Models::Payment for more details.

Parameters:

  • billing (Dodopayments::Models::BillingAddress)

    Billing address details for payments

  • brand_id (String)

    brand id this payment belongs to

  • business_id (String)

    Identifier of the business associated with the payment

  • created_at (Time)

    Timestamp when the payment was created

  • currency (Symbol, Dodopayments::Models::Currency)

    Currency used for the payment

  • customer (Dodopayments::Models::CustomerLimitedDetails)

    Details about the customer who made the payment

  • digital_products_delivered (Boolean)

    Whether the digital products purchased in this payment have been delivered.

  • disputes (Array<Dodopayments::Models::Dispute>)

    List of disputes associated with this payment

  • is_update_payment_method (Boolean)

    Whether this payment was created solely to update a subscription's

  • metadata (Hash{Symbol=>String, Float, Boolean})

    Additional custom data associated with the payment

  • payment_id (String)

    Unique identifier for the payment

  • payment_provider (Symbol, Dodopayments::Models::Payment::PaymentProvider)

    Which processor handled this payment. stripe / adyen for BYOP routes

  • refunds (Array<Dodopayments::Models::RefundListItem>)

    List of refunds issued for this payment

  • retry_attempt (Integer)

    Retry attempt number for subscription renewal payments.

  • settlement_amount (Integer)

    The amount that will be credited to your Dodo balance after currency conversion

  • settlement_currency (Symbol, Dodopayments::Models::Currency)

    The currency in which the settlement_amount will be credited to your Dodo balanc

  • total_amount (Integer)

    Total amount charged to the customer including tax, in the currency's smallest u

  • card_holder_name (String, nil) (defaults to: nil)

    Cardholder name

  • card_issuing_country (Symbol, Dodopayments::Models::CountryCode, nil) (defaults to: nil)

    ISO2 country code of the card

  • card_last_four (String, nil) (defaults to: nil)

    The last four digits of the card

  • card_network (String, nil) (defaults to: nil)

    Card network like VISA, MASTERCARD etc.

  • card_type (String, nil) (defaults to: nil)

    The type of card DEBIT or CREDIT

  • checkout_session_id (String, nil) (defaults to: nil)

    If payment is made using a checkout session,

  • custom_field_responses (Array<Dodopayments::Models::CustomFieldResponse>, nil) (defaults to: nil)

    Customer's responses to custom fields collected during checkout

  • discount_id (String, nil) (defaults to: nil)

    DEPRECATED: Use discounts instead. Returns the first discount's ID if present.

  • discounts (Array<Dodopayments::Models::DiscountDetail>, nil) (defaults to: nil)

    All stacked discounts applied, ordered by position

  • error_code (String, nil) (defaults to: nil)

    An error code if the payment failed

  • error_message (String, nil) (defaults to: nil)

    An error message if the payment failed

  • failure_details (Dodopayments::Models::Payment::FailureDetails, nil) (defaults to: nil)

    Purpose-built failure messaging for the merchant and the customer, derived

  • invoice_id (String, nil) (defaults to: nil)

    Invoice ID for this payment. Uses India-specific invoice ID if available.

  • invoice_url (String, nil) (defaults to: nil)

    URL to download the invoice PDF for this payment.

  • payment_link (String, nil) (defaults to: nil)

    Checkout URL

  • payment_method (String, nil) (defaults to: nil)

    Payment method used by customer (e.g. "card", "bank_transfer")

  • payment_method_id (String, nil) (defaults to: nil)

    Identifier of the saved payment method used for this payment, if any.

  • payment_method_type (String, nil) (defaults to: nil)

    Specific type of payment method (e.g. "visa", "mastercard")

  • product_cart (Array<Dodopayments::Models::Payment::ProductCart>, nil) (defaults to: nil)

    List of products purchased in a one-time payment

  • refund_status (Symbol, Dodopayments::Models::PaymentRefundStatus, nil) (defaults to: nil)

    Summary of the refund status for this payment. None if no succeeded refunds exis

  • settlement_tax (Integer, nil) (defaults to: nil)

    This represents the portion of settlement_amount that corresponds to taxes colle

  • status (Symbol, Dodopayments::Models::IntentStatus, nil) (defaults to: nil)

    Current status of the payment intent

  • subscription_id (String, nil) (defaults to: nil)

    Identifier of the subscription if payment is part of a subscription

  • tax (Integer, nil) (defaults to: nil)

    Amount of tax collected in the currency's smallest unit

  • updated_at (Time, nil) (defaults to: nil)

    Timestamp when the payment was last updated



# File 'lib/dodopayments/models/payment.rb', line 286

Instance Attribute Details

#billingDodopayments::Models::BillingAddress

Billing address details for payments



11
# File 'lib/dodopayments/models/payment.rb', line 11

required :billing, -> { Dodopayments::BillingAddress }

#brand_idString

brand id this payment belongs to

Parameters:

  • value (String)

Returns:

  • (String)


17
# File 'lib/dodopayments/models/payment.rb', line 17

required :brand_id, String

#business_idString

Identifier of the business associated with the payment

Parameters:

  • value (String)

Returns:

  • (String)


23
# File 'lib/dodopayments/models/payment.rb', line 23

required :business_id, String

#card_holder_nameString?

Cardholder name

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


123
# File 'lib/dodopayments/models/payment.rb', line 123

optional :card_holder_name, String, nil?: true

#card_issuing_countrySymbol, ...

ISO2 country code of the card

Parameters:

  • value (Dodopayments::Models::country_code, nil)

Returns:



129
# File 'lib/dodopayments/models/payment.rb', line 129

optional :card_issuing_country, enum: -> { Dodopayments::CountryCode }, nil?: true

#card_last_fourString?

The last four digits of the card

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


135
# File 'lib/dodopayments/models/payment.rb', line 135

optional :card_last_four, String, nil?: true

#card_networkString?

Card network like VISA, MASTERCARD etc.

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


141
# File 'lib/dodopayments/models/payment.rb', line 141

optional :card_network, String, nil?: true

#card_typeString?

The type of card DEBIT or CREDIT

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


147
# File 'lib/dodopayments/models/payment.rb', line 147

optional :card_type, String, nil?: true

#checkout_session_idString?

If payment is made using a checkout session, this field is set to the id of the session.

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


154
# File 'lib/dodopayments/models/payment.rb', line 154

optional :checkout_session_id, String, nil?: true

#created_atTime

Timestamp when the payment was created

Parameters:

  • value (Time)

Returns:

  • (Time)


29
# File 'lib/dodopayments/models/payment.rb', line 29

required :created_at, Time

#currencySymbol, Dodopayments::Models::Currency

Currency used for the payment

Parameters:

  • value (Dodopayments::Models::currency)

Returns:



35
# File 'lib/dodopayments/models/payment.rb', line 35

required :currency, enum: -> { Dodopayments::Currency }

#custom_field_responsesArray<Dodopayments::Models::CustomFieldResponse>?

Customer's responses to custom fields collected during checkout

Parameters:

Returns:



160
161
162
# File 'lib/dodopayments/models/payment.rb', line 160

optional :custom_field_responses,
-> { Dodopayments::Internal::Type::ArrayOf[Dodopayments::CustomFieldResponse] },
nil?: true

#customerDodopayments::Models::CustomerLimitedDetails

Details about the customer who made the payment



41
# File 'lib/dodopayments/models/payment.rb', line 41

required :customer, -> { Dodopayments::CustomerLimitedDetails }

#digital_products_deliveredBoolean

Whether the digital products purchased in this payment have been delivered.

Parameters:

  • value (Boolean)

Returns:

  • (Boolean)


47
# File 'lib/dodopayments/models/payment.rb', line 47

required :digital_products_delivered, Dodopayments::Internal::Type::Boolean

#discount_idString?

Deprecated.

Use discounts instead.

DEPRECATED: Use discounts instead. Returns the first discount's ID if present.

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


170
# File 'lib/dodopayments/models/payment.rb', line 170

optional :discount_id, String, nil?: true

#discountsArray<Dodopayments::Models::DiscountDetail>?

All stacked discounts applied, ordered by position

Parameters:

Returns:



176
177
178
# File 'lib/dodopayments/models/payment.rb', line 176

optional :discounts,
-> { Dodopayments::Internal::Type::ArrayOf[Dodopayments::DiscountDetail] },
nil?: true

#disputesArray<Dodopayments::Models::Dispute>

List of disputes associated with this payment

Parameters:

Returns:



53
# File 'lib/dodopayments/models/payment.rb', line 53

required :disputes, -> { Dodopayments::Internal::Type::ArrayOf[Dodopayments::Dispute] }

#error_codeString?

An error code if the payment failed

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


184
# File 'lib/dodopayments/models/payment.rb', line 184

optional :error_code, String, nil?: true

#error_messageString?

An error message if the payment failed

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


190
# File 'lib/dodopayments/models/payment.rb', line 190

optional :error_message, String, nil?: true

#failure_detailsDodopayments::Models::Payment::FailureDetails?

Purpose-built failure messaging for the merchant and the customer, derived from error_code. Present whenever error_code is set, regardless of payment status; unrecognised codes still resolve via a generic fallback rather than being omitted. The customer copy is always generic for fraud-sensitive declines (lost/stolen/pickup/fraudulent) so the true reason is never leaked.

Parameters:

  • value (Dodopayments::Payment::FailureDetails, nil)

Returns:



200
# File 'lib/dodopayments/models/payment.rb', line 200

optional :failure_details, -> { Dodopayments::Payment::FailureDetails }, nil?: true

#invoice_idString?

Invoice ID for this payment. Uses India-specific invoice ID if available.

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


206
# File 'lib/dodopayments/models/payment.rb', line 206

optional :invoice_id, String, nil?: true

#invoice_urlString?

URL to download the invoice PDF for this payment.

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


212
# File 'lib/dodopayments/models/payment.rb', line 212

optional :invoice_url, String, nil?: true

#is_update_payment_methodBoolean

Whether this payment was created solely to update a subscription's payment method (a zero-/setup-amount charge). false for normal charges.

Parameters:

  • value (Boolean)

Returns:

  • (Boolean)


60
# File 'lib/dodopayments/models/payment.rb', line 60

required :is_update_payment_method, Dodopayments::Internal::Type::Boolean

#metadataHash{Symbol=>String, Float, Boolean}

Additional custom data associated with the payment

Parameters:

  • value (Dodopayments::Models::metadata)

Returns:

  • (Hash{Symbol=>String, Float, Boolean})


66
# File 'lib/dodopayments/models/payment.rb', line 66

required :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }

#payment_idString

Unique identifier for the payment

Parameters:

  • value (String)

Returns:

  • (String)


72
# File 'lib/dodopayments/models/payment.rb', line 72

required :payment_id, String

Checkout URL

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


218
# File 'lib/dodopayments/models/payment.rb', line 218

optional :payment_link, String, nil?: true

#payment_methodString?

Payment method used by customer (e.g. "card", "bank_transfer")

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


224
# File 'lib/dodopayments/models/payment.rb', line 224

optional :payment_method, String, nil?: true

#payment_method_idString?

Identifier of the saved payment method used for this payment, if any.

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


230
# File 'lib/dodopayments/models/payment.rb', line 230

optional :payment_method_id, String, nil?: true

#payment_method_typeString?

Specific type of payment method (e.g. "visa", "mastercard")

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


236
# File 'lib/dodopayments/models/payment.rb', line 236

optional :payment_method_type, String, nil?: true

#payment_providerSymbol, Dodopayments::Models::Payment::PaymentProvider

Which processor handled this payment. stripe / adyen for BYOP routes (the merchant's own payment connector); dodo for everything Dodo processed itself.

Parameters:

  • value (Dodopayments::Models::Payment::payment_provider)

Returns:



79
# File 'lib/dodopayments/models/payment.rb', line 79

required :payment_provider, enum: -> { Dodopayments::Payment::PaymentProvider }

#product_cartArray<Dodopayments::Models::Payment::ProductCart>?

List of products purchased in a one-time payment

Parameters:

  • value (::Array[Dodopayments::Payment::ProductCart], nil)

Returns:



242
243
244
# File 'lib/dodopayments/models/payment.rb', line 242

optional :product_cart,
-> { Dodopayments::Internal::Type::ArrayOf[Dodopayments::Payment::ProductCart] },
nil?: true

#refund_statusSymbol, ...

Summary of the refund status for this payment. None if no succeeded refunds exist.

Parameters:

  • value (Dodopayments::Models::payment_refund_status, nil)

Returns:



251
# File 'lib/dodopayments/models/payment.rb', line 251

optional :refund_status, enum: -> { Dodopayments::PaymentRefundStatus }, nil?: true

#refundsArray<Dodopayments::Models::RefundListItem>

List of refunds issued for this payment

Parameters:

Returns:



85
# File 'lib/dodopayments/models/payment.rb', line 85

required :refunds, -> { Dodopayments::Internal::Type::ArrayOf[Dodopayments::RefundListItem] }

#retry_attemptInteger

Retry attempt number for subscription renewal payments. 0 for the original payment, 1+ for each scheduled off-session retry after a failed renewal. Always 0 for non-subscription payments.

Parameters:

  • value (Integer)

Returns:

  • (Integer)


93
# File 'lib/dodopayments/models/payment.rb', line 93

required :retry_attempt, Integer

#settlement_amountInteger

The amount that will be credited to your Dodo balance after currency conversion and processing. Especially relevant for adaptive pricing where the customer's payment currency differs from your settlement currency.

Parameters:

  • value (Integer)

Returns:

  • (Integer)


101
# File 'lib/dodopayments/models/payment.rb', line 101

required :settlement_amount, Integer

#settlement_currencySymbol, Dodopayments::Models::Currency

The currency in which the settlement_amount will be credited to your Dodo balance. This may differ from the customer's payment currency in adaptive pricing scenarios.

Parameters:

  • value (Dodopayments::Models::currency)

Returns:



109
# File 'lib/dodopayments/models/payment.rb', line 109

required :settlement_currency, enum: -> { Dodopayments::Currency }

#settlement_taxInteger?

This represents the portion of settlement_amount that corresponds to taxes collected. Especially relevant for adaptive pricing where the tax component must be tracked separately in your Dodo balance.

Parameters:

  • value (Integer, nil)

Returns:

  • (Integer, nil)


259
# File 'lib/dodopayments/models/payment.rb', line 259

optional :settlement_tax, Integer, nil?: true

#statusSymbol, ...

Current status of the payment intent

Parameters:

  • value (Dodopayments::Models::intent_status, nil)

Returns:



265
# File 'lib/dodopayments/models/payment.rb', line 265

optional :status, enum: -> { Dodopayments::IntentStatus }, nil?: true

#subscription_idString?

Identifier of the subscription if payment is part of a subscription

Parameters:

  • value (String, nil)

Returns:

  • (String, nil)


271
# File 'lib/dodopayments/models/payment.rb', line 271

optional :subscription_id, String, nil?: true

#taxInteger?

Amount of tax collected in the currency's smallest unit (e.g. cents for USD, yen for JPY, fils for KWD)

Parameters:

  • value (Integer, nil)

Returns:

  • (Integer, nil)


278
# File 'lib/dodopayments/models/payment.rb', line 278

optional :tax, Integer, nil?: true

#total_amountInteger

Total amount charged to the customer including tax, in the currency's smallest unit (e.g. cents for USD, yen for JPY, fils for KWD — see the currency's decimal places)

Parameters:

  • value (Integer)

Returns:

  • (Integer)


117
# File 'lib/dodopayments/models/payment.rb', line 117

required :total_amount, Integer

#updated_atTime?

Timestamp when the payment was last updated

Parameters:

  • value (Time, nil)

Returns:

  • (Time, nil)


284
# File 'lib/dodopayments/models/payment.rb', line 284

optional :updated_at, Time, nil?: true

Class Method Details

.valuesArray<Symbol>

Returns:

  • (Array<Symbol>)


# File 'lib/dodopayments/models/payment.rb', line 385

Instance Method Details

#to_hash{

Returns:

  • ({)


179
# File 'sig/dodopayments/models/payment.rbs', line 179

def to_hash: -> {