Client-Side Implementation
The SSL certificates for Braintree Mobile (iOS and Android) SDKs are set to expire on March 30, 2026. This will impact existing versions of the SDK in published versions of your app. To reduce the impact, upgrade the Android SDK to version 4.45.0+ or version 5.0.0+ for the new SSL certifications
If you do not decommission your app versions that include the older SDK versions or force upgrade your app with the updated certificates by the expiration date, 100% of your customer traffic will fail.
Collecting device data
DataCollector enables you to collect data about a customer's device and correlate it
with a session identifier on your server.
Get the SDK
Add the following to your build.gradle:
- Groovy
dependencies {
implementation 'com.braintreepayments.api:data-collector:4.49.1'
}Initializing
How you initialize device data collection depends on whether you use Drop-in or a custom integration.
Drop-in
Starting October 1, 2026, the Drop-in SDK will be deprecated. No new features, improvements, or bug fixes will be released after this date. Payment processing will continue to be supported until October 1, 2027, but we strongly recommend migrating to the Braintree SDK as soon as possible to avoid future disruption.
Starting October 1, 2027, the Drop-in SDK will become unsupported. Braintree support team will no longer provide assistance for this SDK, and payment processing may be suspended at any time.
Action required: Migrate to the Braintree Android SDK to continue processing payments and receive ongoing updates, security fixes, and support.
Device data will be collected automatically when using Drop-in. Device data can be accessed on the
DropInResult returned in onDropInSuccess.
- Java
- Kotlin
@Override
public void onDropInSuccess(@NonNull DropInResult dropInResult) {
String deviceData = result.getDeviceData();
}Send the device data string response from Drop-in to your server to be included in verification or transaction requests.
Custom
First, create a BraintreeClient with a
ClientTokenProvider
or Tokenization Key. Construct a DataCollector and call
dataCollector#collectDeviceData when verifying a card or creating a transaction.
Merchant applications are responsible for collecting user data consent. If your app has obtained consent from the user to collect location data in compliance with
Google Play Developer Program policies, set hasUserLocationConsent to true. This flag enables PayPal to collect necessary information required for Fraud Detection and Risk Management.
Merchant applications may be required to display a disclosure before collecting user location data
in accordance with Google’s
Best practices for prominent disclosures and consent. By setting hasUserLocationConsent to true, your app is enabled to share device
location data with a third party (PayPal) for Fraud Detection and Risk Management.
- Java
- Kotlin
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
braintreeClient = new BraintreeClient(this, new ExampleClientTokenProvider());
dataCollector = new DataCollector(braintreeClient);
}
private void collectDeviceData() {
DataCollectorRequest dataCollectorRequest = new DataCollectorRequest(hasUserLocationConsent);
dataCollector.collectDeviceData(this, dataCollectorRequest, (deviceData, error) -> {
// send deviceData to your server to be included in verification or transaction requests
});
}
}PayPal
If you're also accepting PayPal using the
Vault flow, you can simultaneously collect that
device data by using the dataCollector.
See the PayPal Vault guide for details.