Skip to content

Updates Android SDK to 23.8.0 + CryptoOnramp SDK EU Support#2441

Merged
mliberatore merged 31 commits into
masterfrom
mliberatore/crypto-onramp-spi
May 18, 2026
Merged

Updates Android SDK to 23.8.0 + CryptoOnramp SDK EU Support#2441
mliberatore merged 31 commits into
masterfrom
mliberatore/crypto-onramp-spi

Conversation

@mliberatore
Copy link
Copy Markdown
Collaborator

@mliberatore mliberatore commented May 5, 2026

Summary

This PR, based on #2457, updates the Android SDK, and adds the iOS + Android bindings for CryptoOnramp SDK EU support. These EU additions are exercised in the example app flow changes.

Motivation

Keeping up-to-date with the latest native SDK releases.

Testing

  • I tested this manually
  • I added automated tests

Tested using the example app. It is expected in testmode that the declaration screen is showing a dummy response (HTML) currently.

New KYC Fields Missing Identifiers Returned Successful Identifier Submission Declaration Screen Declaration Acceptance

Documentation

Select one:

  • I have added relevant documentation for my changes.
  • This PR does not result in any developer-facing changes.

mliberatore added a commit to stripe/stripe-ios that referenced this pull request May 7, 2026
…Sheet to @_spi(CryptoOnrampAlpha) (#6401)

## Summary
There are a few APIs in `StripePaymentSheet` that were exposed only for
`StripeCryptoOnramp`. We want to remove `@_spi(STP)` usage from React
Native, and that requires migrating these to `@_spi(CryptoOnrampAlpha)`.

These changes are in:
- `LinkAppearance.swift`
- `VerifyKYCResult.swift`
- `STPImageLibrary.swift`

All other changes here are correcting the relevant imports to ensure a
clean build.

## Motivation
This request came from Jean in Slack.

## Testing
- Allowed CI to build and run all tests.
- Tested locally with
stripe/stripe-react-native#2441 in the React
Native project.

## Changelog
✅ 
<!-- Is this a notable change that affects users? If so, add a line to
`CHANGELOG.md` and prefix the line with one of the following:
    - [Added] for new features.
    - [Changed] for changes in existing functionality.
    - [Deprecated] for soon-to-be removed features.
    - [Removed] for now removed features.
    - [Fixed] for any bug fixes.
    - [Security] in case of vulnerabilities.
-->
@mliberatore mliberatore changed the base branch from master to mliberatore/25.14.0-update-ios May 13, 2026 13:35
@mliberatore mliberatore changed the title [Requires iOS SDK Update] CryptoOnramp SDK: Changes CryptoOnramp-specific APIs in StripePaymentSheet to @_spi(CryptoOnrampAlpha) Updates Android SDK to 23.8.0 + CryptoOnramp SDK EU Support May 13, 2026
@Twigz Twigz marked this pull request as ready for review May 13, 2026 21:08
@Twigz Twigz requested review from a team as code owners May 13, 2026 21:08
Base automatically changed from mliberatore/25.14.0-update-ios to master May 14, 2026 13:29

- tapOn:
text: "Card number"
text: "Card number. Supported cards include.*"
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this was a recently added test, and it's failing on master for the same reason as those fixed in https://github.com/stripe/stripe-react-native/pull/2457/changes#r3235956032, so fixing here.

@mliberatore mliberatore requested a review from jeanregisser May 14, 2026 15:38
jeanregisser
jeanregisser previously approved these changes May 14, 2026
Copy link
Copy Markdown
Member

@jeanregisser jeanregisser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! 🇪🇺 🚀

Comment thread src/types/Onramp.ts
export type CRSCARFDeclarationResult =
| {
/** The customer accepted the declaration. */
status: 'Confirmed';
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: can we use lowercase status? Or is Capitalization a convention we're already using?

Suggested change
status: 'Confirmed';
status: 'confirmed';

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A convention we're already using across Onramp (we have Consented, Denied, Confirmed, UpdateAddress statuses). I’m not opposed to us shifting to lowercase across the board, but we should plan that accordingly in isolation and discuss client impact if we'd like to do that.

Comment thread ios/StripeSdkImpl.swift
if let identifierError = error as? Mappers.ComplianceIdentifierError,
case let .invalidField(field) = identifierError {
let errorResult = Errors.createError(ErrorType.Unknown, "Invalid format for field: \(field)")
resolve(["error": errorResult["error"]!])
Copy link
Copy Markdown
Member

@jeanregisser jeanregisser May 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing to do now, but this is also where we'll want to apply the richer error proposal that we've been discussing.

Comment thread example/src/screens/Onramp/CryptoOnrampFlow.tsx Outdated
Comment thread example/src/screens/Onramp/utils.ts Outdated
@mliberatore mliberatore merged commit eda6b3f into master May 18, 2026
12 checks passed
@mliberatore mliberatore deleted the mliberatore/crypto-onramp-spi branch May 18, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants