Packages

Complete Stripe SDK for Elixir with parity to the official Ruby SDK. V1+V2 coverage (193 services, 320 resource structs, 525 documented params). Per-event modules, Finch HTTP/2, RustyJSON, automatic retries, OAuth, webhooks, telemetry, per-client config, streaming pagination.

Current section

Files

Jump to
tiger_stripe lib stripe params credit_note_create_params.ex
Raw

lib/stripe/params/credit_note_create_params.ex

# File generated from our OpenAPI spec
defmodule Stripe.Params.CreditNoteCreateParams do
@moduledoc "Parameters for credit note create."
@typedoc """
* `amount` - The integer amount in cents (or local equivalent) representing the total amount of the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided.
* `credit_amount` - The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice.
* `effective_at` - The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF. Format: Unix timestamp.
* `email_type` - Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`. Possible values: `credit_note`, `none`.
* `expand` - Specifies which fields in the response should be expanded.
* `invoice` - ID of the invoice. Max length: 5000.
* `lines` - Line items that make up the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided.
* `memo` - The credit note's memo appears on the credit note PDF. Max length: 5000.
* `metadata` - Set of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
* `out_of_band_amount` - The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe.
* `reason` - Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` Possible values: `duplicate`, `fraudulent`, `order_change`, `product_unsatisfactory`.
* `refund_amount` - The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice.
* `refunds` - Refunds to link to this credit note.
* `shipping_cost` - When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided.
"""
@type t :: %__MODULE__{
amount: integer() | nil,
credit_amount: integer() | nil,
effective_at: integer() | nil,
email_type: String.t() | nil,
expand: [String.t()] | nil,
invoice: String.t(),
lines: [__MODULE__.Lines.t()] | nil,
memo: String.t() | nil,
metadata: %{String.t() => String.t()} | nil,
out_of_band_amount: integer() | nil,
reason: String.t() | nil,
refund_amount: integer() | nil,
refunds: [__MODULE__.Refunds.t()] | nil,
shipping_cost: __MODULE__.ShippingCost.t() | nil
}
defstruct [
:amount,
:credit_amount,
:effective_at,
:email_type,
:expand,
:invoice,
:lines,
:memo,
:metadata,
:out_of_band_amount,
:reason,
:refund_amount,
:refunds,
:shipping_cost
]
defmodule Lines do
@moduledoc "Nested parameters."
@typedoc """
* `amount` - The line item amount to credit. Only valid when `type` is `invoice_line_item`. If invoice is set up with `automatic_tax[enabled]=true`, this amount is tax exclusive
* `description` - The description of the credit note line item. Only valid when the `type` is `custom_line_item`. Max length: 5000.
* `invoice_line_item` - The invoice line item to credit. Only valid when the `type` is `invoice_line_item`. Max length: 5000.
* `quantity` - The line item quantity to credit.
* `tax_amounts` - A list of up to 10 tax amounts for the credit note line item. Cannot be mixed with `tax_rates`.
* `tax_rates` - The tax rates which apply to the credit note line item. Only valid when the `type` is `custom_line_item` and cannot be mixed with `tax_amounts`.
* `type` - Type of the credit note line item, one of `invoice_line_item` or `custom_line_item` Possible values: `custom_line_item`, `invoice_line_item`.
* `unit_amount` - The integer unit amount in cents (or local equivalent) of the credit note line item. This `unit_amount` will be multiplied by the quantity to get the full amount to credit for this line item. Only valid when `type` is `custom_line_item`.
* `unit_amount_decimal` - Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. Format: decimal string.
"""
@type t :: %__MODULE__{
amount: integer() | nil,
description: String.t() | nil,
invoice_line_item: String.t() | nil,
quantity: integer() | nil,
tax_amounts: map() | nil,
tax_rates: map() | nil,
type: String.t() | nil,
unit_amount: integer() | nil,
unit_amount_decimal: String.t() | nil
}
defstruct [
:amount,
:description,
:invoice_line_item,
:quantity,
:tax_amounts,
:tax_rates,
:type,
:unit_amount,
:unit_amount_decimal
]
end
defmodule Refunds do
@moduledoc "Nested parameters."
@typedoc """
* `amount_refunded` - Amount of the refund that applies to this credit note, in cents (or local equivalent). Defaults to the entire refund amount.
* `payment_record_refund` - The PaymentRecord refund details to link to this credit note. Required when `type` is `payment_record_refund`.
* `refund` - ID of an existing refund to link this credit note to. Required when `type` is `refund`.
* `type` - Type of the refund, one of `refund` or `payment_record_refund`. Defaults to `refund`. Possible values: `payment_record_refund`, `refund`.
"""
@type t :: %__MODULE__{
amount_refunded: integer() | nil,
payment_record_refund: __MODULE__.PaymentRecordRefund.t() | nil,
refund: String.t() | nil,
type: String.t() | nil
}
defstruct [:amount_refunded, :payment_record_refund, :refund, :type]
end
defmodule ShippingCost do
@moduledoc "Nested parameters."
@typedoc """
* `shipping_rate` - The ID of the shipping rate to use for this order. Max length: 5000.
"""
@type t :: %__MODULE__{
shipping_rate: String.t() | nil
}
defstruct [:shipping_rate]
end
end