Hi,
i'm trying to Enroll PAN via Visa Token Service api but i'm getting an error: "Input for encPaymentInstrument is invalid or inconsistent with the profile."
As I have seen in the Forum few people have the same issue but i didnt see any resolution. Is the cvv2 in the encPaymentInstrument tag problem? Can it be set to any value?
Also in the Questions in forums I have seen that there is no clear reference of what should encPaymentInstrument consist of?
In the API it is just: "Payment instrument contains: accountNumber, cvv2, last4, name, billingAddress, expirationDatePlease see note below regarding internationalization support for encPaymentInstrument." THERE IS NO NOTE regarding internationalization support on this site.
On this link it says that the cvv2 is optional. (https://community.developer.visa.com/t5/Visa-Developer-Capabilities/encPaymentInstrument-field-descr...)
Where can i find a good example of what the PaymentInstrument has to have.
I have also tried this (https://community.developer.visa.com/t5/Getting-Started-with-Visa/Problem-with-calling-vts-panEnroll...) but the error stays the same.
I have tried number of variation of the PaymentInstrument but every one failed.
Now my PaymentInstrument tag loks like before enc:
{\"accountNumber\":\"49570344196790042\",\"cvv2\":\"758\",\"name\":\"Nesto\",\"billingAddress\":{\"country\":\"BAN\"},"\"expirationDate\":{\"month\":\"10\",\"year\":\"2020\"}}");
Request sent to VTS
{
"clientAppID" : "XXXXXXXXXXXXXXXX",
"encPaymentInstrument" : " {
"clientAppID" : "B9UR9xm9WD4xSEQoXKyF",
"encPaymentInstrument" : "eyJhbGciOiJBMjU2R0NNS1ciLCJlbmMiOiJBMjU2R0NNIiwia2lkIjoiM0RROTlKNTdaOTdNSUVFOTg2TVAyMVZ4eGdkZGVDOTgzYlVvMWEzeTJZZlc1dzlSNCIsIml2IjoicWk5YlB4MDBqdGlZam1LQyIsInRhZyI6IkctcXN2bXRwcFlDaWw2emNRbjRqM1EifQ.OwVPU35eiPKhgqndSTwMjGQkrfMBE3kTAv2uSytDX30.156M5TlMZNTE7R_o.PFPtKtPRDrtO3_ruPvkJXt21zLPcbqkHMyRWuPlwYj7raixlTeZhbLAWu1tLXHQVie-LMm5b72VKg2c3WQS1HW6MA8DAvTpOHH7iJOIPYsvoqEKeVdkgIQTolgjUKG8bLQ-ou4AZlyuMj6oQXnousPTnQnpRmVVtxfLltrJbpkCOp5to3BDBfsRL0VwCdwEXkhI.l-Z2aTaT7H4wfLgc5sHwcg",
"locale" : "en_US",
"panSource" : "MOBILEAPP"
}"
Can you please help me and tell me what I'm doing wrong and posibly give mw a good example of the content of PaymentInstrument before encryption.
Thank you
Tin
Hello,
Let me look into it and get back to you.
Thanks
Sanobar
Hello Tin,
Thank you for your inquiry/question. You have a fair question. Please see the list of field that needs to be part of Encrypted Payment Instrument as below and CVV2 is not optional but conditional that is mandatory for the use case when the panSource is MANUALLYENTERED by consumer for tokenisation.
Encrypted Payment Instrument
Field Description
accountNumber PAN of the card to be enrolled and provisioned
Format: Numeric. Size: 13-19
cvv2 (Conditional) CVV2 value associated with the PAN on the card.
Format: String. Size: 3-4
name (Optional) The full name on the Visa card associated with the enrolled payment instrument
Format: String; Size: 256
expirationDate (Conditional) Payment instrument's expiration date. Populate based on the response from getPanData, which indicates whether this information is printed on the card.
Format: expirationDate structure.
billingAddress Billing address associated with the payment instrument
Format: billingAddress structure.
provider Information about the provider of the payment instrument and the context in which it is provided. Required if the panSource is ISSUER_PUSH_PROVISION.
Format: provider structure.
Hope that helps answer your question.
Best,
Kalpesh Vaidya