# Credential Verification

> Validate Verifiable Credentials using Verification Service.

## Install Dependency

Package: pkg:maven/com.affinidi.tdk/credential.verification.client

```xml

    com.affinidi.tdk
    credential.verification.client

```

Check the latest version on the [Maven Central repository](https://central.sonatype.com/artifact/com.affinidi.tdk/credential.verification.client) or view the source on [GitHub](https://github.com/affinidi/affinidi-tdk/tree/main/clients/java/credential.verification.client).

## Classes and Methods

### Default API

Verify Verifiable Credentials and Verifiable Presentations.

#### verifyCredentials

Validates Verifiable Credentials.

Parameters

    verifyCredentialInput
    VerifyCredentialInput
    Required
  List of Verifiable Credentials to validate.

Example

```java
import com.affinidi.tdk.credential.verification.client.Configuration;
import com.affinidi.tdk.credential.verification.client.ApiClient;
import com.affinidi.tdk.credential.verification.client.auth.ApiKeyAuth;
import com.affinidi.tdk.credential.verification.client.models.VerifyCredentialInput;
import com.affinidi.tdk.credential.verification.client.models.VerifyCredentialOutput;
import com.affinidi.tdk.credential.verification.client.models.W3cCredential;
import com.affinidi.tdk.credential.verification.client.apis.DefaultApi;

try {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
    ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());

    DefaultApi apiInstance = new DefaultApi(defaultClient);

    VerifyCredentialInput requestInput = new VerifyCredentialInput()
        .verifiableCredentials(new ArrayList<>(List.of(new W3cCredential())));

    VerifyCredentialOutput response = apiInstance.verifyCredentials(requestInput);
    System.out.println(response.toString());
} catch (Exception e) {
    e.printStackTrace();
}
```

#### verifyPresentation

Validates a Verifiable Presentation.

Parameters

    verifyPresentationInput
    VerifyPresentationInput
    Required
  Verifiable Presentation and optional presentation definition and submission.

Example

```java
import com.affinidi.tdk.credential.verification.client.Configuration;
import com.affinidi.tdk.credential.verification.client.ApiClient;
import com.affinidi.tdk.credential.verification.client.auth.ApiKeyAuth;
import com.affinidi.tdk.credential.verification.client.models.VerifyPresentationInput;
import com.affinidi.tdk.credential.verification.client.models.VerifyPresentationOutput;
import com.affinidi.tdk.credential.verification.client.models.W3cPresentation;
import com.affinidi.tdk.credential.verification.client.apis.DefaultApi;

try {
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
    ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());

    DefaultApi apiInstance = new DefaultApi(defaultClient);

    VerifyPresentationInput requestInput = new VerifyPresentationInput()
        .verifiablePresentation(new W3cPresentation())
        .challenge("");

    VerifyPresentationOutput response = apiInstance.verifyPresentation(requestInput);
    System.out.println(response.toString());
} catch (Exception e) {
    e.printStackTrace();
}
```
