← Back
Stripe
Stripe PaymentRecord API adds 3D Secure properties, makes card fields optional

Card Properties Now Optional

Stripe has made the following card properties optional in the PaymentRecord object's payment_method_details.card hash:

  • last4: Last 4 digits of the card number
  • brand: Card brand (Visa, Mastercard, etc.)
  • exp_month and exp_year: Card expiration information
  • moto: Mail order or telephone order indicator
  • funding: Card funding type (credit or debit)

Previously, these fields were required, which created constraints when recording payments at various points in the transaction lifecycle or when integrating with external processors that don't provide complete card data.

Enhanced 3D Secure Support

The update adds four new optional properties to the payment_method_details.card.three_d_secure hash:

  • cryptogram: The 3D Secure cryptogram (AAV, CAVV, or AEVV)
  • electronic_commerce_indicator: Protocol-level field indicating degree of authentication performed
  • exemption_indicator: Exemption requested via 3DS and accepted by the issuer
  • exemption_indicator_applied: Whether Stripe requested the exemption_indicator value

What Developers Need to Do

SDK Updates: Upgrade to the latest version of your SDK (Ruby, Python, PHP, Java, Node.js, Go, or .NET) to support API version 2026-03-25.dahlia.

REST API Users: Update requests to include Stripe-Version: 2026-03-25.dahlia header.

Testing: Test your integration in sandbox, including webhook endpoint versioning and Connect integrations if applicable. You can roll back your API version within 72 hours if needed.

These changes improve flexibility for payments orchestration scenarios where complete card data isn't available or necessary, while providing deeper visibility into 3D Secure authentication flows.