I cannot find any example code for FLE, only MLE.
Here is my test API call to /universal/core/customers that fails:
POST { firstName: 'Chris',
lastName: 'Williams',
encAddress: '2f03b230dde8cb918f6558af8b9d05924727eeeb',
encEmailAddress: '3948a53cc2f194d2c714058b89d25ed97e5aaff992',
clientCustomerId: 'Wallit Test User',
locale: 'en_US' }
HTTP Headers: { server: 'nginx',
date: 'Sat, 21 Aug 2021 13:07:21 GMT',
'content-type': 'application/json;charset=UTF-8',
'content-length': '280',
connection: 'close',
'x-served-by': 'l73c018',
'x-correlation-id': '1629551241_807_1802794581_l73c018_VDP_WS',
'x-app-status': '400',
'cache-control': 'no-cache, no-store, must-revalidate',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '1; mode=block',
'x-content-type-options': 'nosniff',
'strict-transport-security': 'max-age=2592000;includeSubdomains',
pragma: 'no-cache',
expires: '-1',
'x-cnection': 'close' }
{"errorResponse":{"status":400,"reason":"invalidParameter","message":"Invalid input parameter(s)","details":[{"location":"encEmailAddress","message":"Failed to parse/decrypt the value provided."},{"location":"encAddress","message":"Failed to parse/decrypt the value provided."}]}}
Here is my node.js code that encrypts the fields:
Solved! Go to Solution
Hi @CJW,
Please reference the below link for information about FLE:
https://developer.visa.com/capabilities/visa-in-app-provisioning/docs-authentication
Do you have the encryption key and KID to do FLE? If not, please send an email to developer@visa.com and request for VIAP encryption key and sandbox test data.
Please let us know if you have any other questions.
I am using the Key ID and server encryption certificate from the Credentials are of my app "Wallit Credit Back End".
The documentation is unclear, not explicitly saying the HTTP header field name to user for the KID. I assume it is "keyId".
All I need is a sample code fragment that shows FLE, preferably for NodeJS, but I will take any language.
Here is my request so you can track down what is going on by using the x-correlation-id:
POST { firstName: 'Chris',
lastName: 'Williams',
encAddress:
'eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2Iiwia2lkIjoiY2ExOTI0OTUtNGZhZS00MjdkLWIxMjEtNTJjZmE4ZWNkNGFhIn0.T096X7_fneBW6rh-lQHsQth5mZPeqLFy8iwFPi40K3REHvWLX6v7h7WEnI1_9HobVxuS04dL-oy7hZh2S_jJWIntanWaSVt8yfvTzqwRQETtlw38HGv4srlaILjLXl8I-1-ij-4lkzBSfs-Np3ORwKaJhQUC5PtS1q21-OiLCrIpOG7IKovlZb0N2lTyb4oTP2ok3Xwb5gnpBZC80t_qfyCwQxjZVkL8mubsIypVbVWgBfS39JGYHs3eiIr9MDqYfd36EIkAZR_qsst0Ycr0eQHg2vUCJCS1Xvy22stg2AVuurISfJl78zfYfUHXFsyvNKc6-29P5Mc7UjKqyrd_dg._apLi8RHxGyxoR2V.xNlDB3ynfQlVchWvz9Gzdcd1TjdkcfyT_83d4LTp4BBsFS7xfFEZ7ZgP5v66p78.OdpBmalG_gSazvWv_I05Gw',
encEmailAddress:
'eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2Iiwia2lkIjoiY2ExOTI0OTUtNGZhZS00MjdkLWIxMjEtNTJjZmE4ZWNkNGFhIn0.f_F-umCyJh4Y3x3Z9k0whFzXQSC9BmjO-nUFFBuqGSKFO7v9ojTkZwfPVvd6iULLCLQamN-rNj187tq2Uf5Fug5UpMJzmlWLnyA4_tXuw-LwW7vMJGn9EkSfvVXPP-PVNAN1Qi6JjRH4YMzs2_06XLubgYWrA1X9zDmsqNYWEy_ejuSXnLINblD8NTmZgBDlM0OOLNldBULsFxvasZv0qJRucw9_tYXgdF9TJSyEsLq5m2_TDlwtopdTCAQU35qFD6PVW2B1BU67IxHnrHcEXv1Zy30pC4OCLvJP4G-n0sMlmY7-JEa7iy2EiSyrg2aLJEl9uzdlbW5-zeZvHj05_Q.oWyXDFcIl_eHG6b7.wmQYtZ_HtYo9p_O96L8EOQPYDxKX.KGCTCo-ZM1yF9YHQ5ZI-YQ',
clientCustomerId: 'Wallit Test User',
locale: 'en_US' }
HTTP Headers: { server: 'nginx',
date: 'Tue, 24 Aug 2021 10:56:17 GMT',
'content-type': 'application/json;charset=UTF-8',
'content-length': '280',
connection: 'close',
'x-served-by': 'l73c018',
'x-correlation-id': '1629802577_764_443164899_l73c018_VDP_WS',
'x-app-status': '400',
'cache-control': 'no-cache, no-store, must-revalidate',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '1; mode=block',
'x-content-type-options': 'nosniff',
'strict-transport-security': 'max-age=2592000;includeSubdomains',
pragma: 'no-cache',
expires: '-1',
'x-cnection': 'close' }
{"errorResponse":{"status":400,"reason":"invalidParameter","message":"Invalid input parameter(s)","details":[{"location":"encEmailAddress","message":"Failed to parse/decrypt the value provided."},{"location":"encAddress","message":"Failed to parse/decrypt the value provided."}]}}
And here is my code that encrypts the fields:
Hi @CJW,
There's a separate set of KeyID/CERT for FLE, please write to developer@visa.com to get it as I can't share on the public forum. For VIAP sandbox testing, there are specific PANs as well and we can share that with you when we receive your email.
Hi @amodarling,
Are you still experiencing an error? What are you trying to do? Sorry for delayed reply.