Updates multiple line items on an invoice. This is only possible when an invoice is still a draft.
Parameters
- linesarray of objectsRequired
The line items to update.
- invoice_
metadataobject Set of key-value pairs 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
. For type=subscription line items, the incoming metadata specified on the request is directly used to set this value, in contrast to type=invoiceitem line items, where any existing metadata on the invoice line is merged with the incoming data.
Returns
The updated invoice is returned upon success. Otherwise, this call raises an error.
{ "id": "in_1NuhUa2eZvKYlo2CWYVhyvD9", "object": "invoice", "account_country": "US", "account_name": "Stripe.com", "account_tax_ids": null, "amount_due": 998, "amount_paid": 0, "amount_remaining": 998, "amount_shipping": 0, "application": null, "application_fee_amount": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": { "enabled": false, "liability": null, "status": null }, "billing_reason": "manual", "charge": null, "collection_method": "charge_automatically", "created": 1695758664, "currency": "usd", "custom_fields": null, "customer": "cus_9s6XKzkNRiz8i3", "customer_address": null, "customer_email": "test@test.com", "customer_name": null, "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "none", "customer_tax_ids": [], "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discount": null, "discounts": [], "due_date": null, "effective_at": null, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "invoice_pdf": null, "issuer": { "type": "self" }, "last_finalization_error": null, "latest_revision": null, "lines": { "object": "list", "data": [ { "id": "il_1NuhUa2eZvKYlo2CC98Fg3Bo", "object": "line_item", "amount": 799, "amount_excluding_tax": 799, "currency": "usd", "description": "test description", "discount_amounts": [], "discountable": true, "discounts": [], "invoice_item": "ii_1NuhUa2eZvKYlo2CGeF7Qgx0", "livemode": false, "metadata": {}, "period": { "end": 1695758664, "start": 1695758664 }, "price": { "id": "price_1NuhLA2eZvKYlo2Cq1tIGEBp", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1695758080, "currency": "usd", "custom_unit_amount": null, "livemode": false, "lookup_key": null, "metadata": {}, "nickname": null, "product": "prod_Oi7aO1GPi1dWX7", "recurring": null, "tax_behavior": "unspecified", "tiers_mode": null, "transform_quantity": null, "type": "one_time", "unit_amount": 799, "unit_amount_decimal": "799" }, "proration": false, "proration_details": { "credited_items": null }, "quantity": 1, "subscription": null, "tax_amounts": [], "tax_rates": [], "type": "invoiceitem", "unit_amount_excluding_tax": "799" }, { "id": "il_1NuLVe2eZvKYlo2Canh35EfU", "object": "line_item", "amount": 199, "amount_excluding_tax": 199, "currency": "usd", "description": "Canned Coffee", "discount_amounts": [], "discountable": true, "discounts": [], "invoice_item": "ii_1NuLVd2eZvKYlo2CRWY0Hqgi", "livemode": false, "metadata": {}, "period": { "end": 1695674161, "start": 1695674161 }, "price": { "id": "price_1NuI212eZvKYlo2CWgdD8kET", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1695660793, "currency": "usd", "custom_unit_amount": null, "livemode": false, "lookup_key": null, "metadata": {}, "nickname": null, "product": "prod_OhhQNWDYdIbXYv", "recurring": null, "tax_behavior": "unspecified", "tiers_mode": null, "transform_quantity": null, "type": "one_time", "unit_amount": 199, "unit_amount_decimal": "199" }, "proration": false, "proration_details": { "credited_items": null }, "quantity": 1, "subscription": null, "tax_amounts": [], "tax_rates": [], "type": "invoiceitem", "unit_amount_excluding_tax": "199" } ], "has_more": false, "url": "/v1/invoices/upcoming/lines?customer=cus_9s6XKzkNRiz8i3" }, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": null, "on_behalf_of": null, "paid": false, "paid_out_of_band": false, "payment_intent": null, "payment_settings": { "default_mandate": null, "payment_method_options": null, "payment_method_types": null }, "period_end": 1688482163, "period_start": 1688395763, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "quote": null, "receipt_number": null, "redaction": null, "rendering": null, "rendering_options": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "draft", "status_transitions": { "finalized_at": null, "marked_uncollectible_at": null, "paid_at": null, "voided_at": null }, "subscription": null, "subscription_details": { "metadata": null }, "subtotal": 998, "subtotal_excluding_tax": 998, "tax": null, "test_clock": null, "total": 998, "total_discount_amounts": [], "total_excluding_tax": 998, "total_tax_amounts": [], "transfer_data": null, "webhooks_delivered_at": null}
Invoice Rendering Templates are used to configure how invoices are rendered on surfaces like the PDF. Invoice Rendering Templates can be created from within the Dashboard, and they can be used over the API when creating invoices.
A billing alert is a resource that notifies you when a certain usage threshold on a meter is crossed. For example, you might create a billing alert to notify you when a certain user made 100 API requests.
A billing meter is a resource that allows you to track usage of a particular event. For example, you might create a billing meter to track the number of API calls made by a particular user. You can then attach the billing meter to a price and attach the price to a subscription to charge the user for the number of API calls they make.
Related guide: Usage based billing
A billing meter event represents a customer’s usage of a product. Meter events are used to bill a customer based on their usage. Meter events are associated with billing meters, which define the shape of the event’s payload and how those events are aggregated for billing.