Get device fingerprint
Product Groups
Through this API you can retrieve payment product groups. A payment product group has a collection of payment products that can be grouped together on a payment product selection page, and a set of fields to render on the payment product details page that allow to determine which payment product of the group the consumer wants to select. We currently support one payment product group named cards that has every credit card we support (and every debit card that behaves like a credit card). Its cardNumber field allows to determine the right payment product through a Get IIN details call.
Request
In case you use your own payment pages and you want to use device fingerprinting to assess the risk based on the device that the consumer is using you will need to include a piece of JavaScript in your page. Using this API you retrieve a transaction specific JavaScript snippet that you need to include in your payment page. The snippet returned in html already contains the deviceFingerprintTransactionId that is specific to one single transaction.
Depending on the provider used for the device fingerprinting it might be possible to execute another JavaScript function in the collectorCallback property that will be executed after the request.
PayloadDeviceFingerprintRequest
Properties
|
|||
Property | Type | Required | Details |
---|---|---|---|
collectorCallback | string | no | read close |
close
DescriptionYou can supply a JavaScript function call that will be called after the device fingerprint data collecting using the provided JavaScript snippet is finished. This will then be added to the snippet that is returned in the property html.
|
Request example
This scenario you will probably use the most
-
body = Domain::DeviceFingerprintRequest.new response = client.v1.merchant('merchantId').productgroups.device_fingerprint('cards', body)
Responses
Please find below an overview of the possible responses.
Response 200 - OKDeviceFingerprintResponse
Returns html containing a transaction specific code snippet for injecting into your own payment page. This snippet already contains the deviceFingerprintTransactionId which must be submitted again when you submit the payment request through CreatePayment.fraudFields.deviceFingerprintTransactionId. It is also possible to submit the deviceFingerprintTransactionId in the Risk Assessment calls.
Properties
|
|||
Property | Type | Required | Details |
---|---|---|---|
deviceFingerprintTransactionId | string | yes | read close |
close
DescriptionContains the unique id which is used by the device fingerprint collector script. This must be used to set the property fraudFields.deviceFingerprintTransactionId in either in the CreatePayment.order.customer.device.deviceFingerprintTransactionId, the CreateRiskAssessmentCards.order.customer.device.deviceFingerprintTransactionId or the CreateRiskAssessmentBankaccounts.order.customer.device.deviceFingerprintTransactionId.
|
|||
html | string | yes | read close |
close
DescriptionContains the ready-to-use device fingerprint collector script. You have to inject it into your page and call it when the customer presses the final payment submit button. You should only call it once per payment request.
|
Response example
This scenario you will probably use the most
-
{ "html" : "<DEVICE FINGERPRINT HTML SCRIPT TAG>", "deviceFingerprintTransactionId" : "2f6a0ceb-4ab4-44e0-b76b-cf4b8f2afcdd" }
Response 400 - Bad requestErrorResponse
Properties
|
|||
Property | Type | Required | Details |
---|---|---|---|
errorId | string | yes | read close |
close
DescriptionUnique reference, for debugging purposes, of this error response
|
|||
array of object | yes | read close | |
close
DescriptionList of one or more errors
|
|||
object | no | read close | |
category | string | no | read close |
close
DescriptionCategory the error belongs to. The category should give an indication of the type of error you are dealing with.
Possible values:
|
|||
code | string | yes | read close |
close
DescriptionError code
|
|||
httpStatusCode | integer | no | read close |
close
DescriptionHTTP status code for this error that can be used to determine the type of error
|
|||
id | string | no | read close |
close
DescriptionID of the error. This is a short human-readable message that briefly describes the error.
|
|||
message | string | no | read close |
close
DescriptionHuman-readable error message that is not meant to be relayed to customer as it might tip off people who are trying to commit fraud
|
|||
propertyName | string | no | read close |
close
DescriptionReturned only if the error relates to a value that was missing or incorrect.
Contains a location path to the value as a JSonata query. Some common examples:
|
|||
requestId | string | no | read close |
close
DescriptionID of the request that can be used for debugging purposes
|
Response example
This scenario you will probably use the most
-
{ "errorId" : "15eabcd5-30b3-479b-ae03-67bb351c07e6-00000092", "errors" : [ { "code" : "20000000", "propertyName" : "bankAccountBban.accountNumber", "message" : "PARAMETER_NOT_FOUND_IN_REQUEST" } ] }
Response 404 - Not foundErrorResponse
The paymentProductGroupId you submitted does not exist or does not have device fingerprint enabled.
Properties
|
|||
Property | Type | Required | Details |
---|---|---|---|
errorId | string | yes | read close |
close
DescriptionUnique reference, for debugging purposes, of this error response
|
|||
array of object | yes | read close | |
close
DescriptionList of one or more errors
|
|||
object | no | read close | |
category | string | no | read close |
close
DescriptionCategory the error belongs to. The category should give an indication of the type of error you are dealing with.
Possible values:
|
|||
code | string | yes | read close |
close
DescriptionError code
|
|||
httpStatusCode | integer | no | read close |
close
DescriptionHTTP status code for this error that can be used to determine the type of error
|
|||
id | string | no | read close |
close
DescriptionID of the error. This is a short human-readable message that briefly describes the error.
|
|||
message | string | no | read close |
close
DescriptionHuman-readable error message that is not meant to be relayed to customer as it might tip off people who are trying to commit fraud
|
|||
propertyName | string | no | read close |
close
DescriptionReturned only if the error relates to a value that was missing or incorrect.
Contains a location path to the value as a JSonata query. Some common examples:
|
|||
requestId | string | no | read close |
close
DescriptionID of the request that can be used for debugging purposes
|
Response example
This scenario you will probably use the most
-
{ "errorId" : "3caa7750-a076-48b2-9402-3cb9eea613a6-00001532", "errors" : [ { "code" : "1424", "message" : "DEVICE_FINGERPRINT_NOT_ENABLED" } ] }