---
"@context": https://schema.org
"@type": TechArticle
"@id": https://www.twilio.com/docs/verify/android-sdk#article
headline: Twilio Verification SDK for Android - SDK Reference
description: Learn technical information about Twilio Verification SDK for Android in this SDK reference page.
url: https://www.twilio.com/docs/verify/android-sdk
inLanguage: en
dateModified: 2026-07-20T17:18:46.000Z
author:
  "@type": Organization
  name: Twilio Developer Education Team
publisher:
  "@type": Organization
  name: Twilio
---

# Twilio Verification SDK for Android - SDK Reference

For a quick start and a step-by-step guide, refer to the [Twilio Verification SDK for Android integration guides](/docs/verify/tutorials/android-sdk-integration).

## Technical information

The Twilio Verification SDK for Android is downloadable via jCenter and has the following technical characteristics:

```bash title="SDK package details"
Downloadable via jCenter. 
Weight: 26KB (v1.0.0)
Method count: 218 methods.

Dependencies: retrofit2, gson, okhttp3.
```

## TwilioVerification instance

To initialize a phone verification process, call `startVerification()`:

```java title="startVerification method signature"
public void startVerification(String jwtToken, Via via);
```

If you decide to use the `Via.SMS`, then the SDK will automatically inspect the SMS inbox in the device and continue the process without interrupting the user.

Otherwise, as a fallback you can use `Via.CALL`
This method will trigger a telephone call from Twilio and deliver a code to the user by voice. The language will be inferred by the API unless `locale` parameter was used in the JWT payload.

The user will need to manually input that code into your app and then your app will need to call `checkVerificationPin()` to complete the process

```java title="checkVerificationPin method signature"
public void checkVerificationPin(String pin);
```

When the BroadcastReceiver receives an intent, the verification status can be extracted with `getVerificationStatus`. The result will be a `VerificationStatus` object.

```java title="getVerificationStatus method signature"
public static VerificationStatus getVerificationStatus(Intent verificationIntent);
```

## VerificationStatus

The `VerificationStatus` object is a response holder that contains three methods:

```java title="getState method signature"
public State getState();
```

Returns a State enum that can take as value: `[ STARTED | AWAITING_VERIFICATION | SUCCESS | ERROR ]`

* `STARTED`: The start verification was called, but the SMS has not arrived yet.
* `AWAITING_VERIFICATION`: The SMS arrived and we're waiting for the check call
* `SUCCESS`: The pin was verified. The verification token is available in the VerificationStatus object through the getVerificationToken() method.
* `ERROR`: There was an error while verifying. The exception can be recovered through the getVerificationException()

```java title="getVerificationToken method signature"
public String getVerificationToken();
```

The verification token has the following structure:

```json title="Verification token structure"
{
    valid: <true|false>,
    iat: <timestamp>,
    exp: <timestamp>,
    verification: {
        uuid: <PV-uuid>,
        via: <sms|call>,
        phone_number:  <phonenumber>,
        code_length: <4-10>
  }
}
```

Returns the verification token, which is proof that the verification was successful. The backend can decrypt this token later with the `AUTHY_API_KEY` to verify this.

```java title="getVerificationException method signature"
public VerificationException getVerificationException();
```

This property will hold the verification exception if it did not succeed.
