lib/stripe/resources/invoice.rb in stripe-13.2.0 vs lib/stripe/resources/invoice.rb in stripe-13.3.0.pre.beta.1
- old
+ new
@@ -46,10 +46,11 @@
def self.object_name
"invoice"
end
nested_resource_class_methods :line, operations: %i[list]
+ nested_resource_class_methods :payment, operations: %i[retrieve list]
# Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.
def add_lines(params = {}, opts = {})
request_stripe_object(
method: :post,
@@ -62,9 +63,89 @@
# Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.
def self.add_lines(invoice, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/invoices/%<invoice>s/add_lines", { invoice: CGI.escape(invoice) }),
+ params: params,
+ opts: opts
+ )
+ end
+
+ # Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
+ #
+ # For Out of Band Payment, the payment is credited to the invoice immediately, increasing the amount_paid
+ # of the invoice and subsequently transitioning the status of the invoice to paid if necessary.
+ #
+ # For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
+ # invoice's status becomes paid.
+ #
+ # If the PaymentIntent's status is already succeeded when it's attached, it's
+ # credited to the invoice immediately.
+ #
+ # See: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create) to learn more.
+ def attach_payment(params = {}, opts = {})
+ request_stripe_object(
+ method: :post,
+ path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(self["id"]) }),
+ params: params,
+ opts: opts
+ )
+ end
+
+ # Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
+ #
+ # For Out of Band Payment, the payment is credited to the invoice immediately, increasing the amount_paid
+ # of the invoice and subsequently transitioning the status of the invoice to paid if necessary.
+ #
+ # For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
+ # invoice's status becomes paid.
+ #
+ # If the PaymentIntent's status is already succeeded when it's attached, it's
+ # credited to the invoice immediately.
+ #
+ # See: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create) to learn more.
+ def self.attach_payment(invoice, params = {}, opts = {})
+ request_stripe_object(
+ method: :post,
+ path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(invoice) }),
+ params: params,
+ opts: opts
+ )
+ end
+
+ # Attaches a PaymentIntent to the invoice, adding it to the list of payments.
+ # When the PaymentIntent's status changes to succeeded, the payment is credited
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
+ # invoice's status becomes paid.
+ #
+ # If the PaymentIntent's status is already succeeded when it is attached, it is
+ # credited to the invoice immediately.
+ #
+ # Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
+ def attach_payment_intent(params = {}, opts = {})
+ request_stripe_object(
+ method: :post,
+ path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(self["id"]) }),
+ params: params,
+ opts: opts
+ )
+ end
+
+ # Attaches a PaymentIntent to the invoice, adding it to the list of payments.
+ # When the PaymentIntent's status changes to succeeded, the payment is credited
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
+ # invoice's status becomes paid.
+ #
+ # If the PaymentIntent's status is already succeeded when it is attached, it is
+ # credited to the invoice immediately.
+ #
+ # Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
+ def self.attach_payment_intent(invoice, params = {}, opts = {})
+ request_stripe_object(
+ method: :post,
+ path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(invoice) }),
params: params,
opts: opts
)
end