rinne-sdk-checkout-sandbox or rinne-sdk-checkout-production, and both are released on the same version. Pin the version named in your beta access email, and upgrade when Rinne announces a version as live. Subscribe to this page’s RSS feed to hear about new releases.
October 13, 2026
Declines say who refused.
DECLINED_BY_ISSUER now means only that the refusal came back from online. A refusal made on the phone gets its own code, and its transaction is null because nothing reached Rinne:DECLINED_OFFLINE: the card, the phone or watch wallet, or the terminal’s own checks refused without going online.CARD_NOT_SUPPORTED: the card has no application this terminal accepts, such as an American Express card.
Failed, and the checkout offers Try again:CARD_ERROR: the card was read, but the exchange with it broke, for example because it was pulled away too early.AUTHORIZATION_ERROR: the authorization data that came back could not be processed.
- A fault inside the SDK that stopped a sale used to arrive as
Cancelled. It now arrives asFailedwithUNKNOWN. - A card reader fault while the terminal is being prepared now reports
TERMINAL_NOT_READYinstead ofCARD_READ_TIMEOUT, so the screen no longer asks for a card during setup. PaymentResult.Failed.messageandReadyResult.Failed.messagekeep the card reader’s cause name alongside the detail.
RinneSDK tag, in every build. Read them with adb logcat -s RinneSDK; see Results and errors.October 8, 2026
- The antenna guide points at the right end of the phone. On devices that report their antenna position, the marker was drawn mirrored top to bottom.
- Antenna coordinates are measured from the top-left.
Nfc.antennaInforeports millimeters from the top-left corner as the user faces the screen in portrait. If you draw your own guide from it, do not flip the vertical axis.
October 7, 2026
The first stable version, and the first entry in this changelog.From this version on, versions follow semantic versioning: a fix raises the patch number, a new feature or a new card reader version raises the minor number, and a breaking change raises the major number.
How releases work
A release is a new version of the SDK. The registry serves every published version, and a version stays available after newer ones ship. During the closed beta only the sandbox artifact is published; Rinne provides the production artifact when your integration is approved for launch. A new card reader version inside the SDK needs its card configuration published on Rinne’s side before devices on it can prepare a terminal. Rinne does this before announcing a version, which is why upgrading only to announced versions matters: a build on an unannounced version fails atgetReady with EMV_CONFIG_UNAVAILABLE.
Next steps
Results and errors
Every
PaymentResult variant and ErrorCode, with the retry rule for each.Going to production
Pin a version, switch the artifact and run the go-live checklist.

