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
Current section
Files
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: [lines()] | 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: [refunds()] | nil,
shipping_cost: shipping_cost() | nil
}
defstruct [
:amount,
:credit_amount,
:effective_at,
:email_type,
:expand,
:invoice,
:lines,
:memo,
:metadata,
:out_of_band_amount,
:reason,
:refund_amount,
:refunds,
:shipping_cost
]
@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 lines :: %{
optional(:amount) => integer() | nil,
optional(:description) => String.t() | nil,
optional(:invoice_line_item) => String.t() | nil,
optional(:quantity) => integer() | nil,
optional(:tax_amounts) => map() | nil,
optional(:tax_rates) => map() | nil,
optional(:type) => String.t() | nil,
optional(:unit_amount) => integer() | nil,
optional(:unit_amount_decimal) => String.t() | nil,
optional(String.t()) => term()
}
@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 refunds :: %{
optional(:amount_refunded) => integer() | nil,
optional(:payment_record_refund) => refunds_payment_record_refund() | nil,
optional(:refund) => String.t() | nil,
optional(:type) => String.t() | nil,
optional(String.t()) => term()
}
@typedoc """
* `payment_record` - The ID of the PaymentRecord with the refund to link to this credit note. Max length: 5000.
* `refund_group` - The PaymentRecord refund group to link to this credit note. For refunds processed off-Stripe, this will correspond to the `processor_details.custom.refund_reference` field provided when reporting the refund on the PaymentRecord. Max length: 5000.
"""
@type refunds_payment_record_refund :: %{
optional(:payment_record) => String.t() | nil,
optional(:refund_group) => String.t() | nil,
optional(String.t()) => term()
}
@typedoc """
* `shipping_rate` - The ID of the shipping rate to use for this order. Max length: 5000.
"""
@type shipping_cost :: %{
optional(:shipping_rate) => String.t() | nil,
optional(String.t()) => term()
}
end