# telesign/java_telesign architecture

> Architecture diagram of the GitHub repository telesign/java_telesign, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/telesign/java_telesign
- Repository: https://github.com/telesign/java_telesign

## Overview

This is a Java SDK for calling Telesign APIs. Applications provide credentials and request data to product-specific clients; those clients shape service requests, while RestClient handles shared authentication, HTTP execution, and response wrapping. The README also describes App Verify, though the sampled AppVerifyClient source exposes constructors only, so its runtime request path is not shown. The tree and excerpts do not establish more detailed internal wiring for that capability.

Main entry points: [`src/main/java/com/telesign/RestClient.java`](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/RestClient.java) (REST client), [`src/main/java/com/telesign/MessagingClient.java`](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/MessagingClient.java) (Messaging client), [`src/main/java/com/telesign/VoiceClient.java`](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/VoiceClient.java) (Voice client), [`src/main/java/com/telesign/PhoneIdClient.java`](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/PhoneIdClient.java) (Phone ID client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_communication["Messaging and voice"]
  node_messaging["Messaging client"]
  node_voice["Voice client<br/>[VoiceClient.java]"]
end

subgraph group_identity["Identity and risk"]
  node_phoneid["Phone ID client<br/>[PhoneIdClient.java]"]
  node_score["Score client<br/>[ScoreClient.java]"]
  node_appverify["App Verify client"]
end

subgraph group_transport["Shared REST transport"]
  node_rest["REST client<br/>[RestClient.java]"]
end

node_application(("Integrating application"))
node_telesign{{"Telesign APIs"}}

node_application -->|"submits or checks status"| node_messaging
node_application -->|"calls or checks status"| node_voice
node_application -->|"looks up number"| node_phoneid
node_application -->|"checks risk"| node_score
node_application -.->|"uses verification SDK"| node_appverify
node_messaging -->|"posts or gets"| node_rest
node_voice -->|"posts or gets"| node_rest
node_phoneid -->|"posts JSON"| node_rest
node_score -->|"posts request"| node_rest
node_rest -->|"authenticates and sends"| node_telesign
node_telesign -->|"returns response"| node_rest

click node_messaging "https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/MessagingClient.java"
click node_voice "https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/VoiceClient.java"
click node_phoneid "https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/PhoneIdClient.java"
click node_score "https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/ScoreClient.java"
click node_appverify "https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/AppVerifyClient.java"
click node_rest "https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/RestClient.java"

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_messaging,node_voice toneBlue
class node_phoneid,node_score,node_appverify toneAmber
class node_rest,node_telesign toneMint
class node_application toneIndigo
```

## Components

### Messaging and voice

- [Messaging client](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/MessagingClient.java): `src/main/java/com/telesign/MessagingClient.java`
- [Voice client](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/VoiceClient.java): `src/main/java/com/telesign/VoiceClient.java`

### Identity and risk

- [Phone ID client](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/PhoneIdClient.java): `src/main/java/com/telesign/PhoneIdClient.java`
- [Score client](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/ScoreClient.java): `src/main/java/com/telesign/ScoreClient.java`
- [App Verify client](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/AppVerifyClient.java): `src/main/java/com/telesign/AppVerifyClient.java`

### Shared REST transport

- [REST client](https://github.com/telesign/java_telesign/blob/master/src/main/java/com/telesign/RestClient.java): `src/main/java/com/telesign/RestClient.java`

### Other components

- **Integrating application**
- **Telesign APIs**

## Connections

- Integrating application → Messaging client: submits or checks status
- Integrating application → Voice client: calls or checks status
- Integrating application → Phone ID client: looks up number
- Integrating application → Score client: checks risk
- Integrating application → App Verify client: uses verification SDK
- Messaging client → REST client: posts or gets
- Voice client → REST client: posts or gets
- Phone ID client → REST client: posts JSON
- Score client → REST client: posts request
- REST client → Telesign APIs: authenticates and sends
- Telesign APIs → REST client: returns response
