On This Page
pilot
Step 2: Bind a device
This section describes how to create a device
binding.
Endpoint
Test:
POST
https://apitest.cybersource.com
/tms/v2/tokenized-cards/{id}/bindingsProduction:
POST
https://api.cybersource.com
/tms/v2/tokenized-cards/{id}/bindingsProduction in India:
POST
https://api.in.cybersource.com
/tms/v2/tokenized-cards/{id}/bindingsProduction in Saudi Arabia:
POST
https://api.sa.cybersource.com
/tms/v2/tokenized-cards/{id}/bindingsTest in Saudi Arabia:
POST
https://apitest.sa.cybersource.com
/tms/v2/tokenized-cards/{id}/bindingsThe is the identifier of the tokenized card.
{id}
Required Fields for Binding a Device
- WhenauthenticatedIdentities.provideris set toCLIENT_DEVICE_CERT_JWS, this field is a JSON Web Signature (JWS) made up of these elements:
- Header:
- alg: Signature algorithm (e.g.,"PS256"for RSA-PSS with SHA-256)
- kid: Client device ID (e.g.,"1234")
- typ:"JOSE"
- cty:"application/json"(payload content type)
- iat: UTC timestamp when transaction was created/signed
- Payload{ "clientDeviceID": "<clientDeviceID>", "clientReferenceID": "<clientCorrelationId>", "vProvisionedTokenID": "<tokenizedCard.tokenReferenceId>", "nonce": "<Random 5 digit number>" }
- Signature
- Algorithm:RSA-PSSwith SHA-256 and MGF1
- algin header set to"PS256"
- WhenauthenticatedIdentities.provideris set toVISA_PAYMENT_PASSKEY, the value of this field is from the iframe.
Related Information
REST Example: Binding a Device
Request
{ "authenticatedIdentities": [ { "data": "<JWS>", "provider": "CLIENT_DEVICE_CERT_JWS", } ], "deviceInformation": { "platformType": "WEB" } }
Response to a Successful Request: Binding Approved
{ "action": "BINDING_COMPLETED" }
Response to a Successful Request: Device and Token Already Bound
{ "action": "BINDING_COMPLETED" }
Response to a Successful Request: Binding Challenged
{ "action": "STEP_UP_AUTHENTICATE", "stepUpOptions": [ { "method": "<stepUpRequest[].method:OTP_SMS (method=OTPSMS)>", "value": "<stepUpRequest[].value>", "source": "<stepUpRequest[].source>", "id": "<stepUpRequest[].identifier>" }, { "method": "<stepUpRequest[].method:OTP_EMAIL(method=OTPEMAIL)>", "value": "<stepUpRequest[].value>", "source": "<stepUpRequest[].source>", "id": "<stepUpRequest[].identifier>" }, { "method": "<stepUpRequest[].method:OTP_ONLINE_BANKING (method=OTPONLINEBANKING)>", "value": "<stepUpRequest[].value>", "source": "<stepUpRequest[].source>", "id": "<stepUpRequest[].identifier>" }, { "method": "<stepUpRequest[].method:APP_TO_APP (method=APP-TO-APP)>", "value": "<stepUpRequest[].value>", "source": "<stepUpRequest[].source>", "id": "<stepUpRequest[].identifier>", "requestPayload": "<stepUpRequest[].requestPayload>" }, { "method": "<stepUpRequest[].method:APP_TO_APP (method=APP-TO-APP)>", "value": "<stepUpRequest[].value>", "source": "<stepUpRequest[].source>", "id": "<stepUpRequest[].identifier>", "requestPayload": "<stepUpRequest[].requestPayload>", "platformType": "WEB (platformType=WEB)", "subMethod": "3DS (subMethod=THREE-DS)" }, { "method": "<stepUpRequest[].method:CUSTOMER_SERVICE (method=CUSTOMERSERVICE)>", "value": "<stepUpRequest[].value>", "id": "<stepUpRequest[].identifier>" }, { "method": "<stepUpRequest[].method:OUTBOUND_CALL (method=OUTBOUNDCALL)>", "value": "<stepUpRequest[].value>", "id": "<stepUpRequest[].identifier>" } ] }
Binding Declined
{ "errors": [ { "type": "declined", "message": "The card association request was declined." } ] }