How It Works
There are two approaches available when integrating DeviceAssure: a client to server model and a server to server model. The client to server model is more straightforward to implement, while the server to server model is useful for cases where it is not possible to make a request directly from the client device or if it is preferable to send the data to an intermediate server before making the validation request to DeviceAssure.
The following sections describe the two approaches in more detail.
Client to Server Model
In the client to server model, client applications integrate the DeviceAssure library. The library collects the device data and makes a validation request to the DeviceAssure service. This approach automatically uses the nearest DeviceAssure service endpoint for optimal response time. The validation results are returned to the library and made available to the application. The results may (optionally) be returned to a predefined callback URL.
This is shown in the below diagram: 
Sequence Diagram

Server to Server Model
The second approach is for the client (Android App or Web App) to call the DeviceAssure library purely to retrieve the collected device data. The DeviceAssure library will not make a request to the DeviceAssure service. It is the responsibility of the calling application to transmit the data to a suitable server, and for that server to request the DeviceAssure service. The validation results are returned directly to the calling server and not to the client application.
This is shown in the diagram below for the DeviceAssure Android library.

Sequence Diagram

Next Steps
- Choosing an Integration Method - Decide which model is right for you
- Understanding Results - Learn what the validation results mean