← Back
Stripe
Stripe makes card properties optional in PaymentRecord API, adds 3D Secure fields
Stripe APIStripe · apifeaturebreaking-change · docs.stripe.com ↗

API Changes

Stripe has updated the PaymentRecord object to provide greater flexibility for payments orchestration scenarios. Several card properties in the payment_method_details.card hash are now optional instead of required:

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

New 3D Secure Properties

The payment_method_details.card.three_d_secure hash now includes four new optional properties for enhanced transaction security data:

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

What Developers Need to Know

This change addresses real-world payments scenarios where not all card fields are guaranteed to be available, particularly when working with external processors or recording payment attempts without complete card data. The optional properties make the API more resilient for payments orchestration use cases.

The new 3D Secure properties bring PaymentRecord closer to feature parity with the Charge resource, giving developers better access to authentication details for compliance and fraud prevention purposes.

Action items: Review your implementations that rely on card properties being required. Update any validation logic that assumes fields like last4 or brand will always be present in PaymentRecord objects.