# 5.5 3DS payments (PSD2)
PSD2 is a European regulation for electronic payment services.
In order to comply with this regulation you will need to adjust the following steps in your migration
- Implement wallet V3
- Listen to event paymentCompleted which is being published by wallet V3. Please note, the equivalent event on wallet V2 is called after3DsComplete
- Adjust the billing call to include additional parameters of encrypted_cvv and fingerprint when present. See more details below
# 5.5.1 Server side required changes:
- on billing calls – when payment method type = traditional
- please send the additional parameters of encrypted_cvv and fingerprint when present. DO NOT manipulate these objects prior to sending them to the server.
- If the source is APPLE_PAY, make sure to send the correct merchant of the processor to do the transaction through, and not the sps merchant.
- Note: the response can flag this transaction as SALE and not SALE_3DS. This can happen in cases where the user was not presented with a challenge frame.
# 5.5.2 Example server call
curl --location--request
POST 'https://the-test.mycheckapp.com/wallet/api/v1/billing'\
--header 'Content-Type : application/x-www-form-urlencoded'\
--header 'Authorization : <Token (Access)>'\
--header 'Cookie:route_0169caff_ad21_4680_8ff9_ef7d2b1045f4=315b606f29c1ff21176e9ef5efc52d35'\
--data-urlencode 'method = SALE_3DS'\
--data-urlencode 'ccToken = <CC_TOKEN>'\
--data-urlencode 'amount = 10'\
--data-urlencode 'currency = USD'\
--data-urlencode 'orderID = 12b4dor1-ef48-45f7-8717-37cd3db5e016534655'\
--data-urlencode 'merchant_id = 3639'\
--data-urlencode 'business_id = 3877'\
--data-urlencode 'fingerprint =
{
"walletSdkSessionId" : "550e8400-e29b-41d4-a716-446655440000",
"ip" :"70.231.14.1",
"screenHeight" :"1567",
"timezoneOffset" :"240",
"browserAgent" :"Mozilla/5.0 (Windows NT 10.0; Win64;x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
}'\
--data-urlencode 'encrypted_cvv = 0177459a85e84aa29749462e11dc04a5'\
--data-urlencode 'language = en'