FILTER BY TAG

Create Tokenized Card Payment Credentials with
Payment Passkey

This section describes how to create tokenized card payment credentials with
Payment Passkey
.

Endpoint

Test:
POST
https://apitest.cybersource.com
/pts/v2/payments
Production:
POST
https://api.cybersource.com
/pts/v2/payments
Production in India:
POST
https://api.in.cybersource.com
/pts/v2/payments
Production in Saudi Arabia:
POST
https://api.sa.cybersource.com
/pts/v2/payments
Test in Saudi Arabia:
POST
https://apitest.sa.cybersource.com
/pts/v2/payments

Required Fields for Creating a Tokenized Card Payment Credentials with VPP

Required if
authenticatedIdentities.provider
is set to
CLIENT_DEVICE_CERT_JWS
.

Optional Fields for Creating a Tokenized Card Payment Credentials with VPP

When
authenticatedIdentities.provider
is set to
CLIENT_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-PSS
      with SHA-256 and MGF1
    • alg
      in header set to
      "PS256"
When
authenticatedIdentities.provider
is set to
VISA_PAYMENT_PASSKEY
, the value of this field is from the iframe.

REST Example: Creating a Tokenized Card Payment Credentials with Payment Passkey

Request1
{ "clientReferenceInformation": { "code": "<clientCorrelationId>" }, "processingInformation": { "authorizationOptions": { "aftIndicator": "<true = transactionType: AFT>" } }, "paymentInformation": { "customer": { "id": "<id in payment-credentials url>" } }, "orderInformation": { "amountDetails": { "totalAmount": "<orderInformation.amountDetails.totalAmount>", "currency": "<orderInformation.amountDetails.currency>" }, "billTo": { "firstName": "<orderInformation.billTo.firstName>", "lastName": "<orderInformation.billTo.lastName>", "address1": "<orderInformation.billTo.address1>", "locality": "<orderInformation.billTo.locality>", "administrativeArea": "<orderInformation.billTo.administrativeArea>", "postalCode": "<orderInformation.billTo.postalCode>", "country": "<orderInformation.billTo.country>", "email": "<orderInformation.billTo.email>", "phoneNumber": "<orderInformation.billTo.phoneNumber>" } }, "deviceInformation": { "ipAddress": "<deviceInformation.ipAddress>", "httpAcceptContent": "<deviceInformation.httpAcceptContent>", "httpBrowserLanguage": "<deviceInformation.httpBrowserLanguage>", "httpBrowserJavaEnabled": "<deviceInformation.httpBrowserJavaEnabled>", "httpBrowserJavaScriptEnabled": "<deviceInformation.httpBrowserJavaScriptEnabled>", "httpBrowserColorDepth": "<deviceInformation.httpBrowserColorDepth>", "httpBrowserScreenHeight": "<deviceInformation.httpBrowserScreenHeight>", "httpBrowserScreenWidth": "<deviceInformation.httpBrowserScreenWidth>", "httpBrowserTimeDifference": "<deviceInformation.httpBrowserTimeDifference>", "userAgentBrowserValue": "<deviceInformation.userAgentBrowserValue>" }, "merchantInformation": { "merchantDescriptor": { "name": "<merchantInformation.merchantDescriptor.name>", "url": "<merchantInformation.merchantDescriptor.url>" } }, "tokenInformation": { "clientCorrelationId": "<clientCorrelationId>", "tokenAuthenticationInformation": { "authenticatedIdentities": [ { "data": "<authenticatedIdentities[].data>", "provider": "<authenticatedIdentities[].provider>", "id": "<authenticatedIdentities[].id>", "relyingPartyId": "<authenticatedIdentities[].relyingPartyId>", "userAuthenticationMethod": "<authenticatedIdentities[].userAuthenticationMethod>" } ] } } }
Response to a Successful Request