Generating a Device Fingerprint

The first step of processing a 3DS card payment is generating a device fingerprint.

  • Start by passing the card BIN to the start() method of the ThreeDSecureService.
    The start() method will further call completion when a device fingerprint is generated.
    [self.threeDSecureService startWithCardBin: "411111"
                                    completion: ^(NSString * _Nullable deviceFingerprintId, NSError * _Nullable error) {
                                           if (error) {
                                               // Handle the error
                                           } else if(deviceFingerprintId) {
                                               // Use the generated device fingerprint to create an authentication
                                           }
                                     }];
    threeDSecureService.start(cardBin: "411111",
                              completion: { deviceFingerprintingId, error in
                                    if error {
                                        // Handle the error
                                    } else if deviceFingerprintId {
                                        // Use the generated device fingerprint to create an authentication
                                    }
                             })
  • Pass your device fingerprint to your server.
    The server must call the /authentications endpoint of the Paysafe REST APIs. The response from the /authentications call contains the 3DS challenge payload, which is handled by your application.

If the SDK fails to generate a device fingerprint, you will receive a ThreeDSecureError that contains useful information about the cause of the failure. When troubleshooting, you can start by checking the error code and detailed message. Below, you can check the currently supported error codes:

Error Information
Error Code Value Explanation
ERROR_CODE_CONNECTION_FAILED 9001 The operation failed due to a timeout or a connectivity issue.
ERROR_CODE_INVALID_RESPONSE 9002 Server returned an invalid data format which could not be handled by the SDK.
ERROR_CODE_INVALID_API_KEY 9013 Invalid API key or API secret provided when creating a Paysafe API Client.
ERROR_CODE_INTERNAL_SDK_ERROR 9014 A general SDK error. The detailed message should provide additional information.
ERROR_CODE_INVALID_OPTIONS 9015 Invalid option fields error. The detailed message should provide additional information.
ERROR_CODE_INVALID_MERCHANT_CONFIGURATION 9501 The configuration of the provided merchant account is invalid. The Paysafe Support team should be notified.
ERROR_CODE_TRANSACTION_FAILED_OR_CANCELED 9601 The operation failed due to a cancellation or a failure.

If you cannot solve the issue on your own, you can get in touch with the Paysafe Support at integrations@paysafe.com and provide them with the error correlation ID.

Did you find this page useful?