Payment Line Items can opt out of strict arithmetic validation per request
Introduced 2026-01-28 · score 0.97
HOW TO USE IT
When Payment Line Item amounts can differ from the PaymentIntent total, set `amount_details.enforce_arithmetic_validation=false` on the create request. Read `amount_details.error` in the response; card payments with arithmetic errors omit line item data from card networks and do not qualify for L2/L3 interchange savings.
curl https://api.stripe.com/v1/payment_intents \
-u "<secret_key>:" \
-d amount=<amount_in_smallest_currency_unit> \
-d currency=<three_letter_lowercase_currency> \
-d "amount_details[enforce_arithmetic_validation]"=false \
-d "amount_details[line_items][0][<field>]"=<value>WHY THIS HELPS
When submitting a Payment Intent with Payment Line Items whose amounts may not match the total, set the per-request validation option and handle the returned errors.
BEFORE THIS CHANGE
By default, Stripe validates that Payment Line Items add up to the total; if they do not, it returns a 400 error.
REQUIREMENTS AND LIMITATIONS
- amount (required): Amount to collect, in the smallest currency unit.
- currency (required): Three-letter ISO currency code in lowercase.
- amount_details.enforce_arithmetic_validation: Set to `false` to let the request proceed when line item amounts do not match the total; per-request option.
- amount_details.error: Response field containing validation error details when arithmetic errors occur.
- amount_details.line_items: PaymentIntent line item details; use documented fields for the applicable payment integration.
- The opt-out is per request.
- For card payments, line item data with arithmetic errors is not sent to card networks, preventing the transaction from qualifying for L2/L3 interchange savings.
FIRST-PARTY EVIDENCE
- https://docs.stripe.com/changelog/clover/2026-01-28/loosen-arithmetic-validation-for-payment-line-items
- https://docs.stripe.com/api/payment_intents/create?api-version=2026-01-28.clover
- https://docs.stripe.com/payments/payment-line-items
Check the installed version and the source before using it. Entry JSON