Cybersource

This page provides the necessary steps to integrate Cybersource as an anti-fraud engine in DEUNA.

Testing requirements

The following content lists the requirements for a successful test integration with Cybersource.

  • Cybersource account
    • Cybersource secret
    • Cybersource Merchant ID
    • Cybersource Key
    • Your organization name in Cybersource
    • Username
    • Password
  • ADMIN account
    • Access to DEUNA test environment

Simulate a Cybersource integration

Make a test integration of Cybersource in your payment solution:

1. Connect Cybersource in test mode

Activate test mode in the Admin and add Cybersource as anti-fraud engine:

  1. Go to Connections.
  2. Search for Cybersource and click on Connect.
  3. Add your Cybersource credentials to connect the provider to DEUNA:
    • Merchant name.
    • Private Key
    • Public Key
    • Merchant ID
  4. Define the operations you want to perform:
    • Purchase
    • Authorize
  5. Click on Connect to finish.

2. Configure Cybersource as anti-fraud provider

Use the test credentials to configure Cybersource in your payment strategy:

  1. Go to Payment Strategies
  2. Find the rule where to add Cybersource.
  3. Click on Edit.
  4. Add Cybersource as anti-fraud provider
  5. Enable manual review.
  6. Enable automatic execution of operations.
  7. Click on Activate to activate the rule.

📘

Process Medium Risk to activate manual review.

3. Create users in Cybersource

Access Cybersource and create users for testing:

  1. Go to the Cybersource Control Panel.
  2. Go to Accounts and select Users.
  3. Click on Create user.
  4. Create the necessary users for testing.

4. Create simulation rules

Create decision lists to simulate test scenarios:

  1. Go to Decision Manager.

  2. Choose Shared Configuration.

  3. Click on Custom Lists.

  4. Create the decision lists:

    • Positive list: Add emails that require to be always accepted.
    • Review list: Add emails that require manual review.
    • Negative list: Add emails that require to be always rejected.

📘

For MercadoPago tests, a special syntax is needed for approval emails:

5. Create profiles and rules in Cybersource

Now, create a profile and give priority to the rules:

  1. Go to Decision Manager.
  2. Choose Configuration.
  3. Click on Profiles.
  4. Add the profile with centralized rules.

📘

Usually a preselected profile called A-Test is available.

Create decision rules for acceptance, rejection, and manual review tests of orders:

  1. Go to Decision Manager.
  2. Choose Configuration.
  3. Click on Custom Rules.
  4. Click on Add Rule.
  5. Add the following rules:
FieldAcceptRejectReview
Rule NameAccept AlwaysReject AlwaysReview Always
DescriptionAccept AlwaysReject AlwaysReview Always
CategoryOther TestsOther TestsOther Tests
Core Rule
DecisionAcceptAcceptAccept
Execution TimingBefore AuthBefore AuthBefore Auth
This rule is true ifAll conditions trueAll conditions trueAll conditions true
Order ElementEmail addressEmail addressEmail address
Comparison Opis equal tois equal tois equal to
Comparison valPositive ListPositive ListPositive List

Edit the rule configuration:

  1. Go to Decision Manager.
  2. Choose Configuration.
  3. Click on Custom Rules.
  4. Click on Edit Rule.
  5. Modify the rules according to the profile:
FieldAcceptRejectReview
Monitor
Accept
Review
Reject
Priority111
Execution TimingBefore AuthBefore AuthBefore Auth
  1. Click on Update to finish.

Configure the URL to receive manual review results:

  1. Go to Decision Manager.
  2. Choose Configuration.
  3. Click on Extended settings.
  4. Click on Developer settings.
  5. Activate Enable order status notification.
  6. In Notification URL to receive notification paste https://api.sandbox.deuna.io/post-transactions/cybersource.
  7. Click on TEST URL.
  8. In Notify for select Reviewer decisions.
  9. Click on UPDATE SETTINGS to finish.

6. Create custom fields (MDDs)

Perform two configurations to create custom fields (MDDS):

  • In the Cybersource Dashboard
  • In your profile configuration in DEUNA

Cybersource Dashboard

  1. Go to the Cybersource control panel
  2. Go to Decision Manager
  3. Click on Shared Configuration.
  4. Choose Custom Fields.
  5. Click on Add Custom Field.
  6. Use the suggested configurations.

Suggested Fields

MDDMDD NameTypeField DescriptionExample
'1''Business LinestringPharmacy/restaurant/retail/etc
'2''MerchantstringMerchant name
'3''Customer First NamestringUser's first name(s). Without last namesMario Alejandro
'4''Customer Last NamestringUser's last name(s)Hernandez Gutierrez
'5''Customer StatestringUser's stateTabasco
'6''Customer City or MunicipalitystringUser's delegation or municipalityCentro
'7''Customer Neighborhood/LocalitystringUser's neighborhood or settlementAtasta
'8''Customer Street and Number/FloorstringCustomer's street and number with floor in case of building or interiorCerrada de Reolucion 377
'11''Customer Postal CodestringCustomer's Postal Code86100
'12''Customer Mobile PhonenumberMobile phone number529932065236
'13''Store Registration MonthstringMonth of registration in virtual store (month only). Store registration dateJanuary
'17''Store Registration YearnumberYear of registration in virtual store (year only). Store registration year2022
'18''Guest or registered?stringSpecify YES when guest customer. And specify NO when registeredNO
'19''Customer Registration TimenumberHow many days the user has been registered as customer90
'21''Items Purchased-Num ItemsnumberNumber of items purchased in transaction (cart)1
'22''Most Expensive Item SKUstringMost expensive model in shopping cartROLEX 231
'25''Interest-free months purchase?stringSpecify YES when it's MSI. And specify NO when it's not."NO"
'26''How many interest-free months?numberNumber of months for purchase, if single payment put 03
'28''Discount Percentagenumberdiscount percentage, on total purchase0.2
'29''Discount code used?stringSpecify YES when promo code was used. And specify NO when not used.NO
'31''Loyalty points used?stringSpecify YES when Dotopoints were used. And specify NO when not used. Must be obtained from the merchant's web/checkoutNO
'32''Delivery First NamestringUser's first name(s)Alejandro Daniel
'34''Delivery Last NamestringUser's last name(s)Valle Haya
'35''Delivery StatestringDelivery stateTabasco
'36''Delivery City or MunicipalitystringDelivery delegation or municipalityCentro
'37''Delivery Neighborhood/LocalitystringDelivery neighborhood or settlementAtasta
'39''Delivery Street and Number/FloorstringDelivery street and number with floorCerrada de Reolucion 377
'40''Delivery Postal CodestringDelivery postal code86100
'41''Delivery Mobile PhonestringMobile phone number529932065236
'43''Delivery DatedateDelivery date in DD-MM-YYYY format31-11-2023
'44''Sales ChannelstringChannel through which product/service was sold: (web, mobile, call center, etc.). Read if purchase is by web or mobile.web
'45''Merchant Affiliationstringunique id per merchant provided by their acquiring bank
'46''Order Day of WeekstringPurchase dayMonday
'47''Product 1 BrandstringbrandROLEX
'48''Product 1 Model (subbrand)stringmodel231
'49''Product 2 BrandstringbrandLenovo
'50''Product 2 Model (subbrand)stringmodelYoga 10
'51''Product 3 BrandstringbrandLenovo
'52''Product 3 Model (subbrand)stringmodelYoga 12
'53''Product 4 BrandstringbrandApple
'54''Product 4 Model (subbrand)stringmodelIphone X
'55''Product 5 BrandstringbrandSony
'56''Product 5 Model (subbrand)stringmodelPS5
'57''Product 6 BrandstringbrandAcer
'58''Product 6 Model (subbrand)stringmodel1234abc
'59''Product 7 BrandstringbrandIntel
'60''Product 7 Model (subbrand)stringmodelCore i7-4790K
'61''Product 8 BrandstringbrandAMD
'62''Product 8 Model (subbrand)stringmodelRyzen 7 3700x

Profile configuration in DEUNA

Create custom fields (MDDs) for backend configuration:

  1. Create constant values that map as MDD as shown in the following request:
curl --location --request PUT 'https://api.stg.deuna.io/merchant/89c0d37b-981e-4fdd-928a-947813fb38b7/profile' \
--header 'Content-Type: application/json' \
--header 'Cookie: AWSALB=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALBCORS=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALB=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI; AWSALBCORS=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IlZOUDlOVGM2SWdxVDhhYVRqYlFnOTRPa2wzZHgtLWZfQjdNdXdTNmYzdmMiLCJ0eXAiOiJKV1QifQ.eyJlbWFpbCI6ImRldmVsb3BlcnNAZ2V0ZHVuYS5jb20iLCJleHAiOjE3MTYwMDUyMDMsImlhdCI6MTcxNTc0NjAwMywibWVyY2hhbnRfaWQiOm51bGwsIm5ldHdvcmtfaWQiOm51bGwsInJvbGUiOiJzdXBlcmFkbWluIiwic3RvcmVfY29kZSI6bnVsbCwic3ViIjoiMSJ9.ZxpZuwIgbJPOTO67-iO_77qRwgaFHI5f8POv-SfZLpH3Auehrlm7T9gQhQK2D0a-spnUouauCFaKj82ZWX8PpRpw0xzyFsIpvDdNKrgxbMtX_g7ve-FsLCxFL8tWhBj6yKG2f8Hzr88FqNFmSO5Vd0NVCon_WkUgKZ3mDHZ4Uf3Uy5HoYPXyLqIaIkG4oCJtC9BZGGax3san8kat-xZRu-SeMXnCwyofeUSkDfpFCYBz1wlkz7KoPDkPSgHdiBBnRi5z-bp_l6bSjir8BHMBc6xa5tdh0bq_UNIbi-wteJaoYuVyvjEO2q04jwCsrnEDV9qVql26PpyyYPveEaY6hMKWRUMpPk0NxOm_hEkgMpR2qyylYXB0X5bb_kzIYCMAKl7F5k6tY6LjRuAQLe20ibQpZmJ7--E_qI3uQsawtptbnGirDu7KeqcBLEJ_K7LoRYeDShJ_DY1MV8Di2Rrnx11g5nNOTNDLzh8PNrEMWEgpwk81oQSG2UcZhOuMCReiZ9abZtnaGVhPjB0pmTty1zhEOzXxbAA87QxwRaY-2hky7RcyCo07tvqKUXFrQomDj5NikMLTUYwydy9jNNJ3vmD3j9fo-7fMCDcic2K3qFHcbujfxnwcMWRkhj1oc3pNSysEBjUKuOGKmoSq8QxzRiihV7_FoOaXqX6pkVrB69Q' \
--data '{
 
    "merchant_information": {
        "business_line": "ecommerce"   
    }
}'

📘

Available values for MDDs are the billing, shipping, items objects, and calculated values as shown in the examples.

  1. Send a request to declare the merchant_custom_information that is used as MDD in Cybersource.
  2. If you want to use metadata fields to send as custom fields (MDDS):
    1. Send the metadata fields to DEUNA in the additive_data object within the metadata object.
    2. Map the fields for mapping to Cybersource under the merchantCustomInformation.additional_data object with the metadata field name plus the defined field number (MDD).
  3. Declare the object name in your configuration if you use a different object name.
curl --location --request PUT 'https://api.stg.deuna.io/merchant/89c0d37b-981e-4fdd-928a-947813fb38b7/profile' \
--header 'Content-Type: application/json' \
--header 'Cookie: AWSALB=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALBCORS=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALB=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI; AWSALBCORS=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IlZOUDlOVGM2SWdxVDhhYVRqYlFnOTRPa2wzZHgtLWZfQjdNdXdTNmYzdmMiLCJ0eXAiOiJKV1QifQ.eyJlbWFpbCI6ImRldmVsb3BlcnNAZ2V0ZHVuYS5jb20iLCJleHAiOjE3MTYwMDUyMDMsImlhdCI6MTcxNTc0NjAwMywibWVyY2hhbnRfaWQiOm51bGwsIm5ldHdvcmtfaWQiOm51bGwsInJvbGUiOiJzdXBlcmFkbWluIiwic3RvcmVfY29kZSI6bnVsbCwic3ViIjoiMSJ9.ZxpZuwIgbJPOTO67-iO_77qRwgaFHI5f8POv-SfZLpH3Auehrlm7T9gQhQK2D0a-spnUouauCFaKj82ZWX8PpRpw0xzyFsIpvDdNKrgxbMtX_g7ve-FsLCxFL8tWhBj6yKG2f8Hzr88FqNFmSO5Vd0NVCon_WkUgKZ3mDHZ4Uf3Uy5HoYPXyLqIaIkG4oCJtC9BZGGax3san8kat-xZRu-SeMXnCwyofeUSkDfpFCYBz1wlkz7KoPDkPSgHdiBBnRi5z-bp_l6bSjir8BHMBc6xa5tdh0bq_UNIbi-wteJaoYuVyvjEO2q04jwCsrnEDV9qVql26PpyyYPveEaY6hMKWRUMpPk0NxOm_hEkgMpR2qyylYXB0X5bb_kzIYCMAKl7F5k6tY6LjRuAQLe20ibQpZmJ7--E_qI3uQsawtptbnGirDu7KeqcBLEJ_K7LoRYeDShJ_DY1MV8Di2Rrnx11g5nNOTNDLzh8PNrEMWEgpwk81oQSG2UcZhOuMCReiZ9abZtnaGVhPjB0pmTty1zhEOzXxbAA87QxwRaY-2hky7RcyCo07tvqKUXFrQomDj5NikMLTUYwydy9jNNJ3vmD3j9fo-7fMCDcic2K3qFHcbujfxnwcMWRkhj1oc3pNSysEBjUKuOGKmoSq8QxzRiihV7_FoOaXqX6pkVrB69Q' \
--data '{
    "merchant_custom_information": {
        "installments": "37",
        "items_0_title": "22",
        "items_1_brand": "25",
        "items_1_title": "26",
        "items_2_title": "28",
        "items_3_brand": "32",
        "items_3_title": "31",
        "items_4_brand": "35",
        "items_4_title": "34",
        "items_5_brand": "57",
        "items_5_title": "56",
        "items_6_brand": "59",
        "items_6_title": "58",
        "items_7_brand": "61",
        "items_7_title": "60",
        "items_8_brand": "63",
        "items_8_title": "62",
        "billing_address": {
            "city": "4",
            "phone": "8",
            "zipcode": "7",
            "address2": "5",
            "last_name": "2",
            "first_name": "1",
            "state_name": "3"
        },
        "shipping_amount": "9",
        "shipping_address": {
            "city": "46",
            "phone": "50",
            "zipcode": "49",
            "addres2": "47",
            "last_name": "44",
            "first_name": "43",
            "state_name": "45"
        },
        "is_coupon_applied": "40",
        "is_installments_msi": "36",
        "items_0_description": "21",
        "items_2_description": "29",
        "get_spanish_day_of_week": "55",
        "get_full_billing_address": "6",
        "get_full_shipping_address": "48",
        "get_channel_from_user_agent": "54",
        "get_total_quantity_products": "18",
        "get_total_discount_percentage": "39",
        "get_full_name_shipping_address": "70",
        "get_max_unit_price_product_name": "19"
    }
}'
curl --location --request PUT 'https://api.stg.deuna.io/merchant/89c0d37b-981e-4fdd-928a-947813fb38b7/profile' \
--header 'Content-Type: application/json' \
--header 'Cookie: AWSALB=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALBCORS=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALB=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI; AWSALBCORS=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IlZOUDlOVGM2SWdxVDhhYVRqYlFnOTRPa2wzZHgtLWZfQjdNdXdTNmYzdmMiLCJ0eXAiOiJKV1QifQ.eyJlbWFpbCI6ImRldmVsb3BlcnNAZ2V0ZHVuYS5jb20iLCJleHAiOjE3MTYwMDUyMDMsImlhdCI6MTcxNTc0NjAwMywibWVyY2hhbnRfaWQiOm51bGwsIm5ldHdvcmtfaWQiOm51bGwsInJvbGUiOiJzdXBlcmFkbWluIiwic3RvcmVfY29kZSI6bnVsbCwic3ViIjoiMSJ9.ZxpZuwIgbJPOTO67-iO_77qRwgaFHI5f8POv-SfZLpH3Auehrlm7T9gQhQK2D0a-spnUouauCFaKj82ZWX8PpRpw0xzyFsIpvDdNKrgxbMtX_g7ve-FsLCxFL8tWhBj6yKG2f8Hzr88FqNFmSO5Vd0NVCon_WkUgKZ3mDHZ4Uf3Uy5HoYPXyLqIaIkG4oCJtC9BZGGax3san8kat-xZRu-SeMXnCwyofeUSkDfpFCYBz1wlkz7KoPDkPSgHdiBBnRi5z-bp_l6bSjir8BHMBc6xa5tdh0bq_UNIbi-wteJaoYuVyvjEO2q04jwCsrnEDV9qVql26PpyyYPveEaY6hMKWRUMpPk0NxOm_hEkgMpR2qyylYXB0X5bb_kzIYCMAKl7F5k6tY6LjRuAQLe20ibQpZmJ7--E_qI3uQsawtptbnGirDu7KeqcBLEJ_K7LoRYeDShJ_DY1MV8Di2Rrnx11g5nNOTNDLzh8PNrEMWEgpwk81oQSG2UcZhOuMCReiZ9abZtnaGVhPjB0pmTty1zhEOzXxbAA87QxwRaY-2hky7RcyCo07tvqKUXFrQomDj5NikMLTUYwydy9jNNJ3vmD3j9fo-7fMCDcic2K3qFHcbujfxnwcMWRkhj1oc3pNSysEBjUKuOGKmoSq8QxzRiihV7_FoOaXqX6pkVrB69Q' \
--data '{
    "merchant_custom_information": {
        "installments": "37",
        "items_0_title": "22",
        "items_1_brand": "25",
        "items_1_title": "26",
        "items_2_title": "28",
        "items_3_brand": "32",
        "items_3_title": "31",
        "items_4_brand": "35",
        "items_4_title": "34",
        "items_5_brand": "57",
        "items_5_title": "56",
        "items_6_brand": "59",
        "items_6_title": "58",
        "items_7_brand": "61",
        "items_7_title": "60",
        "items_8_brand": "63",
        "items_8_title": "62",
        "billing_address": {
            "city": "4",
            "phone": "8",
            "zipcode": "7",
            "address2": "5",
            "last_name": "2",
            "first_name": "1",
            "state_name": "3"
        },
        "shipping_amount": "9",
        "shipping_address": {
            "city": "46",
            "phone": "50",
            "zipcode": "49",
            "addres2": "47",
            "last_name": "44",
            "first_name": "43",
            "state_name": "45"
        },
        "is_coupon_applied": "40",
        "is_installments_msi": "36",
        "items_0_description": "21",
        "items_2_description": "29",
        "get_spanish_day_of_week": "55",
        "get_full_billing_address": "6",
        "get_full_shipping_address": "48",
        "get_channel_from_user_agent": "54",
        "get_total_quantity_products": "18",
        "get_total_discount_percentage": "39",
        "get_full_name_shipping_address": "70",
        "get_max_unit_price_product_name": "19"
    }
}'

📘

For billing in United States and Canada, use the following values for each state or province:

uspsStateCodes = map[string]bool{
		"AL": true,
		"AK": true,
		"AS": true,
		"AZ": true,
		"AR": true,
		"CA": true,
		"CO": true,
		"CT": true,
		"DE": true,
		"DC": true,
		"FM": true,
		"FL": true,
		"GA": true,
		"GU": true,
		"HI": true,
		"ID": true,
		"IL": true,
		"IN": true,
		"IA": true,
		"KS": true,
		"KY": true,
		"LA": true,
		"ME": true,
		"MH": true,
		"MD": true,
		"MA": true,
		"MI": true,
		"MN": true,
		"MS": true,
		"MO": true,
		"MT": true,
		"NE": true,
		"NV": true,
		"NH": true,
		"NJ": true,
		"NM": true,
		"NY": true,
		"NC": true,
		"ND": true,
		"MP": true,
		"OH": true,
		"OK": true,
		"OR": true,
		"PW": true,
		"PA": true,
		"PR": true,
		"RI": true,
		"SC": true,
		"SD": true,
		"TN": true,
		"TX": true,
		"UT": true,
		"VT": true,
		"VI": true,
		"VA": true,
		"WA": true,
		"WV": true,
		"WI": true,
		"WY": true,
	}
canadaPostProvinceCodes = map[string]bool{
		"AB": true,
		"BC": true,
		"MB": true,
		"NB": true,
		"NL": true,
		"NS": true,
		"NT": true,
		"NU": true,
		"ON": true,
		"PE": true,
		"QC": true,
		"SK": true,
		"YT": true,
	}

This page provides the necessary steps to integrate Cybersource as an anti-fraud engine in DEUNA.

Production requirements

The following content lists the requirements for a successful integration with Cybersource.

  • Cybersource account
    • Cybersource secret
    • Cybersource Merchant ID
    • Cybersource Key
    • Your organization name in Cybersource
    • Username
    • Password
  • ADMIN account
    • Access to DEUNA test environment

Integrate Cybersource

Integrate Cybersource in your payment solution:

1. Connect Cybersource in test mode

Activate test mode in the Admin and add Cybersource as anti-fraud engine:

  1. Go to Connections.
  2. Search for Cybersource and click on Connect.
  3. Add your Cybersource credentials to connect the provider to DEUNA:
    • Merchant name.
    • Private Key
    • Public Key
    • Merchant ID
  4. Define the operations you want to perform:
    • Purchase
    • Authorize
  5. Click on Connect to finish.

2. Configure Cybersource as anti-fraud provider

Use the test credentials to configure Cybersource in your payment strategy:

  1. Go to Payment Strategies
  2. Find the rule where to add Cybersource.
  3. Click on Edit.
  4. Add Cybersource as anti-fraud provider
  5. Enable manual review.
  6. Enable automatic execution of operations.
  7. Click on Activate to activate the rule.

📘

Process Medium Risk to activate manual review.

3. Create users in Cybersource

Access Cybersource and create users for testing:

  1. Go to the Cybersource Control Panel.
  2. Go to Accounts and select Users.
  3. Click on Create user.
  4. Create the necessary users for testing.

4. Create simulation rules

Create decision lists to simulate test scenarios:

  1. Go to Decision Manager.

  2. Choose Shared Configuration.

  3. Click on Custom Lists.

  4. Create the decision lists:

    • Positive list: Add emails that require to be always accepted.
    • Review list: Add emails that require manual review.
    • Negative list: Add emails that require to be always rejected.

📘

For MercadoPago tests, a special syntax is needed for approval emails:

5. Create profiles and rules in Cybersource

Now, create a profile and give priority to the rules:

  1. Go to Decision Manager.
  2. Choose Configuration.
  3. Click on Profiles.
  4. Add the profile with centralized rules.

📘

Usually a preselected profile called A-Test is available.

Create decision rules for acceptance, rejection, and manual review tests of orders:

  1. Go to Decision Manager.
  2. Choose Configuration.
  3. Click on Custom Rules.
  4. Click on Add Rule.
  5. Add the following rules:
FieldAcceptRejectReview
Rule NameAccept AlwaysReject AlwaysReview Always
DescriptionAccept AlwaysReject AlwaysReview Always
CategoryOther TestsOther TestsOther Tests
Core Rule
DecisionAcceptAcceptAccept
Execution TimingBefore AuthBefore AuthBefore Auth
This rule is true ifAll conditions trueAll conditions trueAll conditions true
Order ElementEmail addressEmail addressEmail address
Comparison Opis equal tois equal tois equal to
Comparison valPositive ListPositive ListPositive List

Edit the rule configuration:

  1. Go to Decision Manager.
  2. Choose Configuration.
  3. Click on Custom Rules.
  4. Click on Edit Rule.
  5. Modify the rules according to the profile:
FieldAcceptRejectReview
Monitor
Accept
Review
Reject
Priority111
Execution TimingBefore AuthBefore AuthBefore Auth
  1. Click on Update to finish.

Configure the URL to receive manual review results:

  1. Go to Decision Manager.
  2. Choose Configuration.
  3. Click on Extended settings.
  4. Click on Developer settings.
  5. Activate Enable order status notification.
  6. In Notification URL to receive notification paste https://api.sandbox.deuna.io/post-transactions/cybersource.
  7. Click on TEST URL.
  8. In Notify for select Reviewer decisions.
  9. Click on UPDATE SETTINGS to finish.

6. Create custom fields (MDDs)

Perform two configurations to create custom fields (MDDS):

  • In the Cybersource Dashboard
  • In your profile configuration in DEUNA

Cybersource Dashboard

  1. Go to the Cybersource control panel
  2. Go to Decision Manager
  3. Click on Shared Configuration.
  4. Choose Custom Fields.
  5. Click on Add Custom Field.
  6. Use the suggested configurations.

Suggested Fields

MDDMDD NameTypeField DescriptionExample
'1''Business LinestringPharmacy/restaurant/retail/etc
'2''MerchantstringMerchant name
'3''Customer First NamestringUser's first name(s). Without last namesMario Alejandro
'4''Customer Last NamestringUser's last name(s)Hernandez Gutierrez
'5''Customer StatestringUser's stateTabasco
'6''Customer City or MunicipalitystringUser's delegation or municipalityCentro
'7''Customer Neighborhood/LocalitystringUser's neighborhood or settlementAtasta
'8''Customer Street and Number/FloorstringCustomer's street and number with floor in case of building or interiorCerrada de Reolucion 377
'11''Customer Postal CodestringCustomer's Postal Code86100
'12''Customer Mobile PhonenumberMobile phone number529932065236
'13''Store Registration MonthstringMonth of registration in virtual store (month only). Store registration dateJanuary
'17''Store Registration YearnumberYear of registration in virtual store (year only). Store registration year2022
'18''Guest or registered?stringSpecify YES when guest customer. And specify NO when registeredNO
'19''Customer Registration TimenumberHow many days the user has been registered as customer90
'21''Items Purchased-Num ItemsnumberNumber of items purchased in transaction (cart)1
'22''Most Expensive Item SKUstringMost expensive model in shopping cartROLEX 231
'25''Interest-free months purchase?stringSpecify YES when it's MSI. And specify NO when it's not."NO"
'26''How many interest-free months?numberNumber of months for purchase, if single payment put 03
'28''Discount Percentagenumberdiscount percentage, on total purchase0.2
'29''Discount code used?stringSpecify YES when promo code was used. And specify NO when not used.NO
'31''Loyalty points used?stringSpecify YES when Dotopoints were used. And specify NO when not used. Must be obtained from the merchant's web/checkoutNO
'32''Delivery First NamestringUser's first name(s)Alejandro Daniel
'34''Delivery Last NamestringUser's last name(s)Valle Haya
'35''Delivery StatestringDelivery stateTabasco
'36''Delivery City or MunicipalitystringDelivery delegation or municipalityCentro
'37''Delivery Neighborhood/LocalitystringDelivery neighborhood or settlementAtasta
'39''Delivery Street and Number/FloorstringDelivery street and number with floorCerrada de Reolucion 377
'40''Delivery Postal CodestringDelivery postal code86100
'41''Delivery Mobile PhonestringMobile phone number529932065236
'43''Delivery DatedateDelivery date in DD-MM-YYYY format31-11-2023
'44''Sales ChannelstringChannel through which product/service was sold: (web, mobile, call center, etc.). Read if purchase is by web or mobile.web
'45''Merchant Affiliationstringunique id per merchant provided by their acquiring bank
'46''Order Day of WeekstringPurchase dayMonday
'47''Product 1 BrandstringbrandROLEX
'48''Product 1 Model (subbrand)stringmodel231
'49''Product 2 BrandstringbrandLenovo
'50''Product 2 Model (subbrand)stringmodelYoga 10
'51''Product 3 BrandstringbrandLenovo
'52''Product 3 Model (subbrand)stringmodelYoga 12
'53''Product 4 BrandstringbrandApple
'54''Product 4 Model (subbrand)stringmodelIphone X
'55''Product 5 BrandstringbrandSony
'56''Product 5 Model (subbrand)stringmodelPS5
'57''Product 6 BrandstringbrandAcer
'58''Product 6 Model (subbrand)stringmodel1234abc
'59''Product 7 BrandstringbrandIntel
'60''Product 7 Model (subbrand)stringmodelCore i7-4790K
'61''Product 8 BrandstringbrandAMD
'62''Product 8 Model (subbrand)stringmodelRyzen 7 3700x

Profile configuration in DEUNA

Create custom fields (MDDs) for backend configuration:

  1. Create constant values that map as MDD as shown in the following request:
curl --location --request PUT 'https://api.stg.deuna.io/merchant/89c0d37b-981e-4fdd-928a-947813fb38b7/profile' \
--header 'Content-Type: application/json' \
--header 'Cookie: AWSALB=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALBCORS=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALB=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI; AWSALBCORS=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IlZOUDlOVGM2SWdxVDhhYVRqYlFnOTRPa2wzZHgtLWZfQjdNdXdTNmYzdmMiLCJ0eXAiOiJKV1QifQ.eyJlbWFpbCI6ImRldmVsb3BlcnNAZ2V0ZHVuYS5jb20iLCJleHAiOjE3MTYwMDUyMDMsImlhdCI6MTcxNTc0NjAwMywibWVyY2hhbnRfaWQiOm51bGwsIm5ldHdvcmtfaWQiOm51bGwsInJvbGUiOiJzdXBlcmFkbWluIiwic3RvcmVfY29kZSI6bnVsbCwic3ViIjoiMSJ9.ZxpZuwIgbJPOTO67-iO_77qRwgaFHI5f8POv-SfZLpH3Auehrlm7T9gQhQK2D0a-spnUouauCFaKj82ZWX8PpRpw0xzyFsIpvDdNKrgxbMtX_g7ve-FsLCxFL8tWhBj6yKG2f8Hzr88FqNFmSO5Vd0NVCon_WkUgKZ3mDHZ4Uf3Uy5HoYPXyLqIaIkG4oCJtC9BZGGax3san8kat-xZRu-SeMXnCwyofeUSkDfpFCYBz1wlkz7KoPDkPSgHdiBBnRi5z-bp_l6bSjir8BHMBc6xa5tdh0bq_UNIbi-wteJaoYuVyvjEO2q04jwCsrnEDV9qVql26PpyyYPveEaY6hMKWRUMpPk0NxOm_hEkgMpR2qyylYXB0X5bb_kzIYCMAKl7F5k6tY6LjRuAQLe20ibQpZmJ7--E_qI3uQsawtptbnGirDu7KeqcBLEJ_K7LoRYeDShJ_DY1MV8Di2Rrnx11g5nNOTNDLzh8PNrEMWEgpwk81oQSG2UcZhOuMCReiZ9abZtnaGVhPjB0pmTty1zhEOzXxbAA87QxwRaY-2hky7RcyCo07tvqKUXFrQomDj5NikMLTUYwydy9jNNJ3vmD3j9fo-7fMCDcic2K3qFHcbujfxnwcMWRkhj1oc3pNSysEBjUKuOGKmoSq8QxzRiihV7_FoOaXqX6pkVrB69Q' \
--data '{
 
    "merchant_information": {
        "business_line": "ecommerce"   
    }
}'

📘

Available values for MDDs are the billing, shipping, items objects, and calculated values as shown in the examples.

  1. Send a request to declare the merchant_custom_information that is used as MDD in Cybersource.
  2. If you want to use metadata fields to send as custom fields (MDDS):
    1. Send the metadata fields to DEUNA in the additive_data object within the metadata object.
    2. Map the fields for mapping to Cybersource under the merchantCustomInformation.additional_data object with the metadata field name plus the defined field number (MDD).
  3. Declare the object name in your configuration if you use a different object name.
curl --location --request PUT 'https://api.stg.deuna.io/merchant/89c0d37b-981e-4fdd-928a-947813fb38b7/profile' \
--header 'Content-Type: application/json' \
--header 'Cookie: AWSALB=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALBCORS=sezOm4eWdkRjRNhNikLbvgWT1fCBHVtYAZA0Cl83Gf3DDhVAzvKl7+A7pkkU3g034zsrFPB9UVwYIji32bmmAoxvXr1uM/lbP6IaGc3lT7dNjeP0mBbajbQ67B4q; AWSALB=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI; AWSALBCORS=IdENTlkIaa9SGGBdZ8Dd/LAcvyqscwq/UwRh6DKiVzfS+RQ9ZZ0jBT9e+mrX8FTEeKs8wfcXEVFmVKNhNcy/qW1zh5MGxj5/+jQdMwrqyFuSpEAl4mGjfQYO3DbI' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IlZOUDlOVGM2SWdxVDhhYVRqYlFnOTRPa2wzZHgtLWZfQjdNdXdTNmYzdmMiLCJ0eXAiOiJKV1QifQ.eyJlbWFpbCI6ImRldmVsb3BlcnNAZ2V0ZHVuYS5jb20iLCJleHAiOjE3MTYwMDUyMDMsImlhdCI6MTcxNTc0NjAwMywibWVyY2hhbnRfaWQiOm51bGwsIm5ldHdvcmtfaWQiOm51bGwsInJvbGUiOiJzdXBlcmFkbWluIiwic3RvcmVfY29kZSI6bnVsbCwic3ViIjoiMSJ9.ZxpZuwIgbJPOTO67-iO_77qRwgaFHI5f8POv-SfZLpH3Auehrlm7T9gQhQK2D0a-spnUouauCFaKj82ZWX8PpRpw0xzyFsIpvDdNKrgxbMtX_g7ve-FsLCxFL8tWhBj6yKG2f8Hzr88FqNFmSO5Vd0NVCon_WkUgKZ3mDHZ4Uf3Uy5HoYPXyLqIaIkG4oCJtC9BZGGax3san8kat-xZRu-SeMXnCwyofeUSkDfpFCYBz1wlkz7KoPDkPSgHdiBBnRi5z-bp_l6bSjir8BHMBc6xa5tdh0bq_UNIbi-wteJaoYuVyvjEO2q04jwCsrnEDV9qVql26PpyyYPveEaY6hMKWRUMpPk0NxOm_hEkgMpR2qyylYXB0X5bb_kzIYCMAKl7F5k6tY6LjRuAQLe20ibQpZmJ7--E_qI3uQsawtptbnGirDu7KeqcBLEJ_K7LoRYeDShJ_DY1MV8Di2Rrnx11g5nNOTNDLzh8PNrEMWEgpwk81oQSG2UcZhOuMCReiZ9abZtnaGVhPjB0pmTty1zhEOzXxbAA87QxwRaY-2hky7RcyCo07tvqKUXFrQomDj5NikMLTUYwydy9jNNJ3vmD3j9fo-7fMCDcic2K3qFHcbujfxnwcMWRkhj1oc3pNSysEBjUKuOGKmoSq8QxzRiihV7_FoOaXqX6pkVrB69Q' \
--data '{
    "merchant_custom_information": {
        "installments": "37",
        "items_0_title": "22",
        "items_1_brand": "25",
        "items_1_title": "26",
        "items_2_title": "28",
        "items_3_brand": "32",
        "items_3_title": "31",
        "items_4_brand": "35",
        "items_4_title": "34",
        "items_5_brand": "57",
        "items_5_title": "56",
        "items_6_brand": "59",
        "items_6_title": "58",
        "items_7_brand": "61",
        "items_7_title": "60",
        "items_8_brand": "63",
        "items_8_title": "62",
        "billing_address": {
            "city": "4",
            "phone": "8",
            "zipcode": "7",
            "address2": "5",
            "last_name": "2",
            "first_name": "1",
            "state_name": "3"
        },
        "shipping_amount": "9",
        "shipping_address": {
            "city": "46",
            "phone": "50",
            "zipcode": "49",
            "addres2": "47",
            "last_name": "44",
            "first_name": "43",
            "state_name": "45"
        },
        "is_coupon_applied": "40",
        "is_installments_msi": "36",
        "items_0_description": "21",
        "items_2_description": "29",
        "get_spanish_day_of_week": "55",
        "get_full_billing_address": "6",
        "get_full_shipping_address": "48",
        "get_channel_from_user_agent": "54",
        "get_total_quantity_products": "18",
        "get_total_discount_percentage": "39",
        "get_full_name_shipping_address": "70",
        "get_max_unit_price_product_name": "19"
    }
}'

📘

For billing in United States and Canada, use the following values for each state or province:

uspsStateCodes = map[string]bool{
		"AL": true,
		"AK": true,
		"AS": true,
		"AZ": true,
		"AR": true,
		"CA": true,
		"CO": true,
		"CT": true,
		"DE": true,
		"DC": true,
		"FM": true,
		"FL": true,
		"GA": true,
		"GU": true,
		"HI": true,
		"ID": true,
		"IL": true,
		"IN": true,
		"IA": true,
		"KS": true,
		"KY": true,
		"LA": true,
		"ME": true,
		"MH": true,
		"MD": true,
		"MA": true,
		"MI": true,
		"MN": true,
		"MS": true,
		"MO": true,
		"MT": true,
		"NE": true,
		"NV": true,
		"NH": true,
		"NJ": true,
		"NM": true,
		"NY": true,
		"NC": true,
		"ND": true,
		"MP": true,
		"OH": true,
		"OK": true,
		"OR": true,
		"PW": true,
		"PA": true,
		"PR": true,
		"RI": true,
		"SC": true,
		"SD": true,
		"TN": true,
		"TX": true,
		"UT": true,
		"VT": true,
		"VI": true,
		"VA": true,
		"WA": true,
		"WV": true,
		"WI": true,
		"WY": true,
	}
canadaPostProvinceCodes = map[string]bool{
		"AB": true,
		"BC": true,
		"MB": true,
		"NB": true,
		"NL": true,
		"NS": true,
		"NT": true,
		"NU": true,
		"ON": true,
		"PE": true,
		"QC": true,
		"SK": true,
		"YT": true,
	}

Metadata example

        "metadata": {
            "additional_data.account_name": "Nelson",
            "additional_data.identity_type": "DNI"
            
        },

Configuration example

{
    "merchant_custom_information": {
        "merchant_information": {
            "business_line": "22",
            "merchant_identifier": "1"  
        },     
        "metadata": {
            "additional_data.merchant_terminal": "2",
            "additional_data.account_name": "4",            
            "additional_data.created_at_date": "6",
            "additional_data.created_at_time": "7",
            "additional_data.item_category_name": "23",
            "additional_data.item_category_code": "24",
            "additional_data.total_discount": "25",
            "additional_data.giftcard": "28"
        },
        "installments": "17",
        "billing_address": {
            "identification_type": "18",
            "identification": "19",
            "phone": "21"
        },
        "email": "20",
        "shipping_options": {
            "type": "26"
        },
        "shipping_address": {
            "city": "27",
            "address1": "30"
        },
        "get_full_name_billing_address_uppercase": "31"    
    }   
} 

Field table

Calculated dataDescriptionExample
"is_coupon_applied"Specify YES when promo code was used. And specify NO when not used.NO
"is_installments_msi"Specify YES when it's MSI. And specify NO when it's not.NO
"items_0_description"
"items_2_description"
"get_spanish_day_of_week"Order day of weekMonday
"get_full_billing_address"Customer street and number with floor in case of building or interiorCerrada de Revolucion 377
"get_full_shipping_address"Delivery street and number with floorCerrada de Revolucion 377
"get_channel_from_user_agent"Channel through which product/service was sold: (web, mobile, call center, etc.). Read if purchase is by web or mobile.web
"get_total_quantity_products"Number of items purchased in transaction (cart)1
"get_total_discount_percentage"discount percentage, on total purchase0.2
"get_full_name_shipping_address"Concatenation of first and last name of shippingDiego Lora
get_full_name_billing_addressConcatenation of first and last name of billingSantiago Yepes
get_full_name_billing_address_uppercaseConcatenation of first and last name of billing converted to uppercaseSANTIAGO YEPES
"get_max_unit_price_product_name"Most expensive model in shopping cartROLEX 231

7. Configure Device Fingerprint for Cybersource

The Device Fingerprint for Cybersource is a code generated by a script that runs during the payment process.

The code is sent to your servers and must be sent in the purchase request so that Cybersource can identify them.

Example

org_id=1snn5n9w&session_id=deuna_dmbfd62cb3-108b-552f-920a-15da86adb622

The code is composed of:

  • org_id: A code sent to your store, changes depending on environment.
  • session_id: A code composed of your store name and its UUID.

Required parameters

  • cs_orgId must be equal to:
    • 1snn5n9w for sandbox or test environment.
    • k8vif92e for production environment.
  • The cs_merchantId value is assigned by Cybersource for each store.

For VTEX.

If you use VTEX, add the following script to the checkout6-custom.js code of your configuration:

{

	},
	CYBERSOURCE: {
      "cs_orgId": "1snn5n9w",
      "cs_merchantId": "deuna_dm" 
	},

	STRIPE: {
      "API_KEY": "pk_test_TYooMQauvdEDq54NiTphI7jx" //if applies
	},

  MERCADOPAGO: {
      // if applies
  },

  }  
}

For Direct API

If your integration with DEUNA is Direct API, integrate the Cybersource script in your application:

Implementation script

<script type="text/javascript" src="https://h.online-metrix.net/fp/ tags.js?org_id=<org ID>&session_id=<merchant ID><session ID>"></ script>

<noscript>
    <iframe style="width: 100px; height: 100px; border: 0; position: absolute; top: -5000px;" src="https://h.online-metrix.net/fp/tags?org_ id=<org ID>&session_id=<merchant ID><session ID>"></iframe>
</noscript>

Output example

bfd62cb3-108b-552f-920a-15da86adb622
  1. Run the script.
  2. Use the output and send it to DEUNA.
  3. Add your credentials in the script.
    • <org ID> must be equal to: Must be 1snn5n9w for sandbox or test environment.
    • <org ID> must be equal to k8vif92e for production environment.
    • <merchant ID>: Your Cybersource id.
    • <session ID>: A unique UUID value per order. It is sent within the device_id for V1 and within the x-device-id for V2.

8. Test the integration

Perform test transactions with the following credentials:

ResultFieldValue
Automatic approvalemail[email protected]billing_address.email = [email protected]
Automatic rejectionemail[email protected]billing_address.email = [email protected]
Manual review (Approved and declined in dashboard)email[email protected]_review@testuser.combilling_address.email = [email protected]

Start testing in the ADMIN:

  1. Save a payment strategy
    • Process tests with Medium Risk for manual review.
  2. Enter the Cybersource Control Panel.
  3. Go to Manual Review Decision Manager
  4. Go to Case Management
  5. Click on Cases.
  6. Select the dates or the test order ID in the search.
  7. Click on Search.
  8. Select the last attempt made with the order number of interest.
    • Each attempt generates a new request ID associated with the same order ID.
  9. Accept or approve the transaction.
  10. Review the transactions in the DEUNA ADMIN.
  11. In the Fraud section, the following values should appear:
    • Low risk
    • Medium risk (if manual review is not activated)
    • High risk
    • Manual review: Approved by the payment gateway, but pending manual approval or rejection in the Cybersource control panel.
    • Approved: Approved in the Cybersource control panel
    • Rejected: Rejected in the Cybersource control panel

📘

Remember to use the correct values for states and provinces in the billing stage.

9. Configure the production environment

Repeat the process in your production environment, with the following values:

  1. Production control panel: https://businesscenter.cybersource.com/ebc2/

  2. Webhook URL: https://apigw.getduna.com/post-transactions/cybersource

  3. Create a new profile

  4. Set rules to approve, deny, or manually review.

  5. Add the MDDs again.

  6. The Device Fingerprint org_id must be equal to k8vif92e.

  7. Deactivate Test mode in the DEUNA ADMIN.

  8. Add Cybersource as anti-fraud engine provider in Connections.

  9. Activate manual review functions.

  10. In General fraud configuration:

    • Enable manual review.
    • Enable automatic execution of operations.
  11. Configure payment gateways and set a payment strategy.

  12. Process medium risk to enable manual review.

Once activated, we can continue with the process.

👍

Cybersource is activated as anti-fraud engine.