{"templateId":"markdown","sharedDataIds":{"oas-api/index.yaml":"oas-api/index.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab","openapi-code-sample","json-schema"]},"type":"markdown"},"seo":{"title":"Evervault Plugin","description":"Integrate Evervault 3D Secure authentication with Finix","siteUrl":"https://docs.finix.com/","llmstxt":{"hide":false,"sections":[{"title":"Getting Started","includeFiles":["guides/getting-started/**/*.md"],"excludeFiles":[]},{"title":"Online Payments","includeFiles":["guides/online-payments/**/*.md"],"excludeFiles":["guides/online-payments/payment-features/fsa-hsa-non-healthcare-mcc.md"]},{"title":"In-Person Payments","includeFiles":["guides/in-person-payments/**/*.md"],"excludeFiles":[]},{"title":"Subscriptions","includeFiles":["guides/subscriptions/**/*.md"],"excludeFiles":[]},{"title":"After the Payment","includeFiles":["guides/after-the-payment/**/*.md"],"excludeFiles":[]},{"title":"Managing Operations","includeFiles":["guides/managing-operations/**/*.md"],"excludeFiles":[]},{"title":"Platform Payments","includeFiles":["guides/platform-payments/**/*.md"],"excludeFiles":[]},{"title":"Payouts","includeFiles":["guides/payouts/**/*.md"],"excludeFiles":[]},{"title":"Low-Code / No-Code","includeFiles":["low-code-no-code/**/*.md"],"excludeFiles":[]},{"title":"Developers","includeFiles":["additional-resources/developers/**/*.md"],"excludeFiles":[]},{"title":"Plugins","includeFiles":["additional-resources/plugins/**/*.md"],"excludeFiles":[]},{"title":"Industry Considerations","includeFiles":["guides/industry-considerations/**/*.md"],"excludeFiles":[]},{"title":"Regional Considerations","includeFiles":["guides/regional-considerations/**/*.md"],"excludeFiles":[]},{"title":"Release Notes","includeFiles":["release-notes/**/*.md"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"evervault","__idx":0},"children":["Evervault"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Integrate 3D Secure authentication with Finix using ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://evervault.com"},"children":["Evervault"]},"."]},{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/finix_for_evervault.baaaf7a130f450fcd10a7b52dd60bcb09f82bf36d26e21c00da786421b4b0c60.fec90461.png","alt":"Finix for Evervault","height":"500"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"finix-for-evervault-overview","__idx":1},"children":["Finix for Evervault overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Connecting Evervault to Finix allows merchants to perform 3D Secure authentication on card transactions before processing payments through Finix."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Implementing 3D Secure for online payments provides several benefits:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Reduced Fraud:"]}," Requiring an additional authentication step could decreases the risk of unauthorized transactions by verifying the cardholder's identity."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Liability Shift:"]}," When a transaction is authenticated with 3D Secure and later turns out to be fraudulent, the chargeback liability can shift from the merchant to the card issuer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Regulatory Compliance:"]}," 3D Secure helps merchants comply with regulations such as PSD2/SCA in different geographic areas."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"finix-requirements","__idx":2},"children":["Finix requirements"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Finix Sandbox Account to process Sandbox transactions. You will not be able to move real money in this environment."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Finix Live Account to run card or ACH transactions."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"evervault-requirements","__idx":3},"children":["Evervault requirements"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Evervault account with 3DS Server access. See Evervault's ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.evervault.com/cards/3d-secure"},"children":["Getting Started"]}," documentation for a full guide on the 3D Secure authentication process."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"integration","__idx":4},"children":["Integration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-sign-up-for-a-finix-account","__idx":5},"children":["Step 1: Sign up for a Finix account"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To create a Finix account, you can follow our step-by-step ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/getting-started/finix-sign-up"},"children":["guide"]}," or ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://finix.payments-dashboard.com"},"children":["sign up"]}," directly for a live or sandbox account."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-create-finix-api-keys","__idx":6},"children":["Step 2: Create Finix API keys"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"API Environments"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["API Keys are specific to either the Sandbox or Live environments, depending on whether you get them from the Sandbox or Live Dashboard. Sandbox Keys cannot be used in the Live Environment and vice-versa. ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/api/section/environments"},"children":["Learn more here"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To create an API Key:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developers → API Keys"]}," in the Finix dashboard."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create API Key"]}," and enter a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Display Name"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Save the credentials somewhere secure."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Store API Keys Securely"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Save your password somewhere secure. You ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["cannot"]}," re-copy the password, but you can always create another API Key. API Keys are sensitive data and must be treated like passwords. Store them securely and only share them on an as-needed basis."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To learn more see our ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/additional-resources/developers/authentication-and-api-basics/api-keys"},"children":["API Keys"]}," documentation."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-collect-and-tokenize-card-data-with-evervault","__idx":7},"children":["Step 3: Collect and tokenize card data with Evervault"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Finix does not pass raw PANs to Evervault directly. To use 3DSecure you must use Evervault's Card Collection iframe to collect and encrypt card data."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"register-an-acquirer-with-evervault","__idx":8},"children":["Register an acquirer with Evervault"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Register your acquirer configuration with Evervault. This is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["one-time setup"]}," — save the returned acquirer ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},"for later."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","data-title":"Register Acquirer with Evervault","header":{"title":"Register Acquirer with Evervault","controls":{"copy":{}}},"source":"curl https://api.evervault.com/payments/acquirers \\\n  --request POST \\\n  --user 'app_id:api_key' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n    \"name\": \"Ollivanders Wand Shop Production Configuration\",\n    \"description\": \"Ollivanders Wand Shop Production Configuration\",\n    \"default\": true,\n    \"configurations\": [\n      {\n        \"network\": \"mastercard\",\n        \"bin\": \"424242\",\n        \"acquirerMerchantIdentifier\": \"38191048173\",\n        \"country\": \"ie\"\n      },\n      {\n        \"network\": \"visa\",\n        \"bin\": \"424242\",\n        \"acquirerMerchantIdentifier\": \"38191048173\",\n        \"country\": \"ie\"\n      }\n    ]\n  }'\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Production BIN Numbers"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For production, contact Evervault to get the correct BIN numbers to include in your acquirer configuration."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response includes an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," for your acquirer configuration:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Sample Acquirer Registration Response","header":{"title":"Sample Acquirer Registration Response","controls":{"copy":{}}},"source":"{\n  \"id\": \"acquirer_adk3kdljc3\",\n  ...\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"One-Time Registration"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You only need to register your acquirer once. After that, reference the same acquirer ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"evervault-card-collection","__idx":9},"children":["Evervault card collection"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For a full integration guide, see Evervault's ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.evervault.com/cards/card-collection#getting-started"},"children":["Card Collection documentation"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once you collect the card data using Evervault, you will need to configure Evervault's Relay to create a corresponding ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Payment Instrument"]}," on Finix's API."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"evervault-relay","__idx":10},"children":["Evervault relay"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Relay is Evervault's network proxy that decrypts encrypted card data in transit before forwarding requests to Finix."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For a full integration guide, see Evervault's ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.evervault.com/cards/card-collection#processing-encrypted-card-data"},"children":["Relay Documentation"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"1-configure-a-relay","__idx":11},"children":["1. Configure a Relay"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the Evervault Dashboard, click on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add Route"]}," and configure a new route."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Path:"]}," Set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/**"]}," to match all requests, or specify paths like ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/payment_instruments"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Decryption:"]}," Add a request action to decrypt JSON fields."]}]},{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/evervault-relay-page.ee119b6f8001d5b246ed0eab454c718fc007b8f9a0defa1c217850b1908a5572.08ff7529.png","alt":"Finix for Evervault","height":"500"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"2-send-requests-via-the-relay","__idx":12},"children":["2. Send Requests via the Relay"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["createPaymentInstrument"]}," request to the Relay URL instead of the Finix API directly. The Relay decrypts the encrypted PAN in transit so Finix receives the raw card data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After creating the Payment Instrument on Finix, map the Finix Payment Instrument ID against the Evervault token. Use the Finix Payment Instrument ID for all subsequent Finix API calls."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"conduct-a-3dsecure-authentication","__idx":13},"children":["Conduct a 3DSecure authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Completing 3DS authentication requires three steps: creating a session, authenticating the session on the client, and forwarding the resulting credentials to Finix. For a full guide, see Evervault's ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.evervault.com/cards/3d-secure#getting-started-with-3d-secure"},"children":["3D Secure documentation"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"1-create-a-3ds-session","__idx":14},"children":["1. Create a 3DS Session"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["From your backend, call the Evervault create session endpoint with the card, merchant, and payment details. Use the acquirer ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," you saved from the registration step above."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","data-title":"Create a 3DS Session","header":{"title":"Create a 3DS Session","controls":{"copy":{}}},"source":"curl https://api.evervault.com/payments/3ds-sessions \\\n  --request POST \\\n  --user 'app_id:api_key' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n    \"merchant\": {\n      \"name\": \"<MERCHANT_NAME>\",\n      \"website\": \"<MERCHANT_WEBSITE>\",\n      \"categoryCode\": \"<MERCHANT_CATEGORY_CODE>\",\n      \"country\": \"<MERCHANT_COUNTRY>\"\n    },\n    \"acquirer\": \"<ACQUIRER_ID>\",\n    \"card\": {\n      \"number\": \"<CARD_NUMBER>\",\n      \"expiry\": {\n        \"month\": \"<EXPIRY_MONTH>\",\n        \"year\": \"<EXPIRY_YEAR>\"\n      }\n    },\n    \"payment\": {\n      \"type\": \"one-off\",\n      \"amount\": <AMOUNT>,\n      \"currency\": \"<CURRENCY_CODE>\"\n    },\n    \"challenge\": {\n      \"preference\": \"challenge-requested\"\n    }\n  }'\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response returns a session ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," — pass this to your client-side code."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"2-authenticate-the-session-on-the-client","__idx":15},"children":["2. Authenticate the Session on the Client"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use Evervault's JavaScript SDK to render the authentication challenge. Initialize the SDK with your Team ID and App ID, then call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["evervault.ui.threeDSecure"]}," with the session ID and mount the modal. Handle success and failure events in the callbacks."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["As an alternative to the SDK, you can redirect the browser to Evervault's 3DS endpoint with the session ID and a callback URL — Evervault will redirect back with the authentication status appended."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"3-retrieve-and-forward-credentials","__idx":16},"children":["3. Retrieve and Forward Credentials"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After successful authentication, retrieve the ECI and cryptogram from the Evervault session. Pass these values to Finix in the authorization or transfer request (see Step 4 below)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-4-create-a-3dsecure-sale-or-authorization","__idx":17},"children":["Step 4: Create a 3DSecure Sale or Authorization"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once the 3DS session is resolved, map the Evervault 3DS response values to the Finix authorization request:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"3d_secure_authentication\": {\n    \"cardholder_authentication\": \"<EVERVAULT_CRYPTOGRAM>\",\n    \"electronic_commerce_indicator\": \"<ECI_ENUM>\",\n    \"transaction_id\": \"<ACS_TRANSACTION_ID>\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Map the following values from the Evervault 3DS session response:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Evervault Field"},"children":["Evervault Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Finix Field"},"children":["Finix Field"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cryptogram"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardholder_authentication"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ECI (see mapping table below)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["electronic_commerce_indicator"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accessControlServer.transactionIdentifier"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_id"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"eci-mapping","__idx":18},"children":["ECI mapping"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Finix requires a specific enum for the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["electronic_commerce_indicator"]}," field. Map the raw ECI values from the 3DS session as follows:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Raw ECI Value"},"children":["Raw ECI Value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Finix Enum"},"children":["Finix Enum"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["02"]}," (Mastercard), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["05"]}," (all others)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTHENTICATED"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["01"]}," (Mastercard), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["06"]}," (all others)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ATTEMPTED"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Any other value"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NON_AUTHENTICATED"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"ATTEMPTED Status"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["An ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ATTEMPTED"]}," status still provides a liability shift. It means the card network performed authentication on behalf of the issuing bank because the bank doesn't support 3DS or the card isn't enrolled. A cryptogram is only provided when 3DS authentication is successful."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you are using Evervault's UI Components, send the authorization request to the Relay proxy URL (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://finix-live-payments-api-com.relay.evervault.app/authorizations"]},") instead of the Finix API directly."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"sale-example","__idx":19},"children":["Sale example"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"Example","disable":false},"children":[{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-api/index.yaml","operationId":"createTransfer","exampleKey":"Transfer - 3D Secure","parameters":{},"environments":{}},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"API Definition","disable":false},"children":[{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../api/components/schemas/requestBodies/transfers/createTransfer3DSecure.yaml"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/createTransfer3DSecure"},"3d_secure_authentication":{"type":"object","nullable":true,"properties":{"cardholder_authentication":{"type":"string","description":"Provides evidence that the cardholder authentication occurred or that the merchant attempted authentication. This is unique for each authentication transaction and is sometimes referred to as the cardholder authentication verification value (CAVV)."},"electronic_commerce_indicator":{"type":"string","description":"- **AUTHENTICATED**: Approved by 3D Secure Vendor.\n- **ATTEMPTED**: Issuer or cardholder does not support 3D Secure.\n- **NON_AUTHENTICATED**: Did not pass in 3D Secure Data or passed in incorrect data when attempting 3D Secure."},"transaction_id":{"type":"string","maxLength":36,"description":"Unique identifier for the 3D Secure transaction."}},"required":["cardholder_authentication","electronic_commerce_indicator","transaction_id"]},"amount":{"type":"integer","description":"The total amount that will be debited in cents (e.g. 100 cents to debit $1.00).","example":5000,"format":"int64"},"currency":{"type":"string","description":"ISO 4217 3-letter currency code.","enum":["CAD","USD"]},"source":{"type":"string","example":"PIxxxxxxxxxxxxxxxxxx","description":"ID of the `Payment Instrument` where funds get debited."},"createTransfer3DSecure":{"title":"Transfer - 3D Secure","properties":{"3d_secure_authentication":{"description":"The 3D secure information required to create a 3D secure `Transfer.`","allOf":[{"$ref":"#/components/schemas/3d_secure_authentication"}]},"amount":{"$ref":"#/components/schemas/amount"},"currency":{"$ref":"#/components/schemas/currency"},"merchant":{"type":"string","description":"The ID of the `Merchant` under which to create the `Transfer`."},"source":{"$ref":"#/components/schemas/source"}},"required":["amount","currency","merchant","source"]}}}},"schemaResolvedErrors":[]},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"authorization-example","__idx":20},"children":["Authorization example"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"Example","disable":false},"children":[{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-api/index.yaml","operationId":"createAuthorization","exampleKey":"Authorization - 3D Secure","parameters":{},"environments":{}},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"API Definition","disable":false},"children":[{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../../api/components/schemas/requestBodies/authorizations/createAuthorization3DSecure.yaml"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/createAuthorization3DSecure"},"3d_secure_authentication":{"type":"object","nullable":true,"properties":{"cardholder_authentication":{"type":"string","description":"Provides evidence that the cardholder authentication occurred or that the merchant attempted authentication. This is unique for each authentication transaction and is sometimes referred to as the cardholder authentication verification value (CAVV)."},"electronic_commerce_indicator":{"type":"string","description":"- **AUTHENTICATED**: Approved by 3D Secure Vendor.\n- **ATTEMPTED**: Issuer or cardholder does not support 3D Secure.\n- **NON_AUTHENTICATED**: Did not pass in 3D Secure Data or passed in incorrect data when attempting 3D Secure."},"transaction_id":{"type":"string","maxLength":36,"description":"Unique identifier for the 3D Secure transaction."}},"required":["cardholder_authentication","electronic_commerce_indicator","transaction_id"]},"amount":{"type":"integer","description":"The total amount that will be debited in cents (e.g. 100 cents to debit $1.00).","example":5000,"format":"int64"},"currency":{"type":"string","description":"ISO 4217 3-letter currency code.","enum":["CAD","USD"]},"source":{"type":"string","example":"PIxxxxxxxxxxxxxxxxxx","description":"ID of the `Payment Instrument` where funds get debited."},"createAuthorization3DSecure":{"title":"Authorization - 3D Secure","type":"object","properties":{"3d_secure_authentication":{"description":"The 3D secure information required to create a 3D secure `Authorization.`","allOf":[{"$ref":"#/components/schemas/3d_secure_authentication"}]},"amount":{"$ref":"#/components/schemas/amount"},"currency":{"$ref":"#/components/schemas/currency"},"merchant":{"type":"string","description":"The ID of the `Merchant` that the `Authorization` was created under."},"source":{"$ref":"#/components/schemas/source"}},"required":["amount","currency","merchant","source"]}}}},"schemaResolvedErrors":[]},"children":[]}]}]}]},"headings":[{"value":"Evervault","id":"evervault","depth":1},{"value":"Finix for Evervault overview","id":"finix-for-evervault-overview","depth":2},{"value":"Finix requirements","id":"finix-requirements","depth":3},{"value":"Evervault requirements","id":"evervault-requirements","depth":3},{"value":"Integration","id":"integration","depth":2},{"value":"Step 1: Sign up for a Finix account","id":"step-1-sign-up-for-a-finix-account","depth":3},{"value":"Step 2: Create Finix API keys","id":"step-2-create-finix-api-keys","depth":3},{"value":"Step 3: Collect and tokenize card data with Evervault","id":"step-3-collect-and-tokenize-card-data-with-evervault","depth":3},{"value":"Register an acquirer with Evervault","id":"register-an-acquirer-with-evervault","depth":4},{"value":"Evervault card collection","id":"evervault-card-collection","depth":4},{"value":"Evervault relay","id":"evervault-relay","depth":4},{"value":"1. Configure a Relay","id":"1-configure-a-relay","depth":5},{"value":"2. Send Requests via the Relay","id":"2-send-requests-via-the-relay","depth":5},{"value":"Conduct a 3DSecure authentication","id":"conduct-a-3dsecure-authentication","depth":4},{"value":"1. Create a 3DS Session","id":"1-create-a-3ds-session","depth":5},{"value":"2. Authenticate the Session on the Client","id":"2-authenticate-the-session-on-the-client","depth":5},{"value":"3. Retrieve and Forward Credentials","id":"3-retrieve-and-forward-credentials","depth":5},{"value":"Step 4: Create a 3DSecure Sale or Authorization","id":"step-4-create-a-3dsecure-sale-or-authorization","depth":3},{"value":"ECI mapping","id":"eci-mapping","depth":4},{"value":"Sale example","id":"sale-example","depth":4},{"value":"Authorization example","id":"authorization-example","depth":4}],"frontmatter":{"excludeFromSearch":true,"seo":{"title":"Evervault Plugin","description":"Integrate Evervault 3D Secure authentication with Finix"},"keywords":{"includes":["evervault","evervault plugin","evervault 3ds","3d secure"]}},"lastModified":"2026-08-26T22:26:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/additional-resources/plugins/evervault-plugin","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}