# checkout/checkout-3ds-sdk-android architecture

> Architecture diagram of the GitHub repository checkout/checkout-3ds-sdk-android, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/checkout/checkout-3ds-sdk-android
- Repository: https://github.com/checkout/checkout-3ds-sdk-android

## Overview

This repository snapshot contains only a README, so the graph reflects documented behavior rather than inspected implementation. The principal workflow is app setup, authentication request, SDK-managed device collection and issuer communication, any required challenge, and an authentication result returned to the app. The README also documents customizable native challenge presentation, localization/accessibility, and optional 3DS1 fallback; internal call ownership and implementation boundaries cannot be verified.

Main entry points: [`README.md`](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md) (3DS SDK)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_integration["App integration"]
  node_sdk_setup["SDK setup<br/>[README.md]"]
  node_auth_config["Authentication parameters<br/>[README.md]"]
  node_auth_result["Authentication result<br/>[README.md]"]
end

subgraph group_authentication["Authentication flow"]
  node_sdk["3DS SDK<br/>[README.md]"]
  node_device_data["Device data collection<br/>[README.md]"]
  node_fallback["3DS1 fallback<br/>[README.md]"]
  node_issuer_protocol["3DS protocols<br/>[README.md]"]
end

subgraph group_experience["Customer experience"]
  node_challenge["Native challenge<br/>[README.md]"]
  node_presentation["Styling and localization<br/>[README.md]"]
end

node_app(("Integrating app"))
node_issuer["Card issuer"]

node_app -->|"initializes"| node_sdk_setup
node_app -->|"configures"| node_auth_config
node_app -->|"requests authentication"| node_sdk
node_sdk -->|"collects"| node_device_data
node_sdk -->|"communicates with"| node_issuer
node_sdk -->|"presents when required"| node_challenge
node_challenge -->|"uses options"| node_presentation
node_sdk -.->|"may fall back"| node_fallback
node_sdk -->|"supports"| node_issuer_protocol
node_sdk -->|"returns"| node_auth_result
node_auth_result -->|"continues payment flow"| node_app

click node_sdk_setup "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"
click node_auth_config "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"
click node_sdk "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"
click node_device_data "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"
click node_challenge "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"
click node_fallback "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"
click node_auth_result "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"
click node_issuer_protocol "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"
click node_presentation "https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sdk_setup,node_auth_config,node_auth_result toneBlue
class node_sdk,node_device_data,node_fallback,node_issuer_protocol toneAmber
class node_challenge,node_presentation toneMint
class node_app,node_issuer toneIndigo
```

## Components

### App integration

- [SDK setup](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`
- [Authentication parameters](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`
- [Authentication result](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`

### Authentication flow

- [3DS SDK](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`
- [Device data collection](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`
- [3DS1 fallback](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`
- [3DS protocols](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`

### Customer experience

- [Native challenge](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`
- [Styling and localization](https://github.com/checkout/checkout-3ds-sdk-android/blob/main/README.md): `README.md`

### Other components

- **Integrating app**
- **Card issuer**

## Connections

- Integrating app → SDK setup: initializes (evidence: `README.md`)
- Integrating app → Authentication parameters: configures (evidence: `README.md`)
- Integrating app → 3DS SDK: requests authentication (evidence: `README.md`)
- 3DS SDK → Device data collection: collects (evidence: `README.md`)
- 3DS SDK → Card issuer: communicates with (evidence: `README.md`)
- 3DS SDK → Native challenge: presents when required (evidence: `README.md`)
- Native challenge → Styling and localization: uses options (evidence: `README.md`)
- 3DS SDK → 3DS1 fallback: may fall back (evidence: `README.md`)
- 3DS SDK → 3DS protocols: supports (evidence: `README.md`)
- 3DS SDK → Authentication result: returns (evidence: `README.md`)
- Authentication result → Integrating app: continues payment flow (evidence: `README.md`)
