sincecutoff.com
← all changes

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

Check the installed version and the source before using it. Entry JSON

Report a problem with this card