---
updatedAt: 2026-08-25T21:43:02.000Z
agentTools:
  siteIndex: https://docs.affirm.com/llms.txt
  projectIndex: https://docs.affirm.com/developers/llms.txt
---

# Reliability & Testing

## Fail-Open Principle

Connected Accounts acceleration must never be able to block a checkout. If any step in the Returning User Flow fails for any reason, do not surface an error to the customer. Instead, drop the acceleration attempt and proceed with a standard, non-accelerated checkout. The customer simply falls back to normal authentication flow.&#x20;

## Relevant Screens

The following screens are specific to Connected Accounts and will not appear like this in standard flows.

### Phone Number Entry Page

The phone number entry page will render a checkbox that says "Keep me logged in to checkout faster". When users check this box, they consent to Connected Accounts and refresh token creation will be attempted.

<Image src="https://files.readme.io/8c3bd222912748f93d6955a5245cf2f0158d06373aca188417c201f1a5292310-Keep_me_logged_in_to_checkout_faster.png" width="200px" />

### User Profile

Once a user is signed in, a user profile will will appear in the top right corner. When opened, it will show the user's name and email. This is where a user is able to sign-out and disconnect their account.

<Image src="https://files.readme.io/0a168aff712273e0427d0105a8a098de924bbfa079bb6759cb94d4faba53c79e-User_Profile.png" width="200px" />

## Test Scenarios

| Scenario                          | How to Test                                                                                    | Expected Result                                                                              |
| --------------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| *New customer linking*            | Complete checkout with “Keep me logged in to checkout faster” checked                          | Receive refresh token via webhook or Token Lookup API                                        |
| *Returning customer acceleration* | Use stored refresh token in Token Exchange                                                     | Receive access token; checkout is accelerated, so the user bypasses the authentication flow. |
| *Expired refresh token*           | Revoke the token via the ‘Switch accounts’ button to disconnect your account from the merchant | `unauthorized` error; standard checkout proceeds                                             |
| *Invalid access token*            | Use a malformed or expired access token                                                        | Checkout proceeds without acceleration (fail-open)                                           |
| *Token rotation*                  | Exchange the same refresh token twice (minutes later)                                          | Second request fails with `unauthorized`                                                     |

# Sibling pages

* [Set Up Connected Accounts](https://docs.affirm.com/developers/docs/set-up-connected-accounts.md)
* [Integration Checklist](https://docs.affirm.com/developers/docs/connected-accounts-integration-checklist.md)