Once the Visa endpoint has been enabled, head over to the dashboard, switch to Settings -> Manage merchants then edit your merchant account
using the actions menu, … -> Edit merchant. In a single merchant environment you may be able to go to this screen
directly via the Settings -> Configuration menu.Next, switch to the Vault Forwarding tab and you should see the Visa endpoint enabled for
your environment. In the actions menu should have an option to edit the Authentication methods.
Click on this menu, and it will take you to a new screen to set up
an authentication.Visa has 2 authentication methods that can be set up: Message Level Encryption (MLE) and mutual TLS (mTLS).
Mutual TLS ensures that all data between our system and Visa is encrypted at the TLS (SSL) level. This is generally a required authentication method for Visa endpoints
and will be the same for any merchant account.To set up mTLS, head over to the Visa Developer Center and switch to your merchant account, Credentials and register a new certificate.
Once set up you should have a private key and 2 certificates. You can always redownload your certificate from the Visa dashboard by going to Credentials -> Actions.
-?> Download Certificate.Similarly, you can download the DigiCert Global Root CA’ certificate from the Visa dashboard as well. This root certificate may require conversion to the pem format.
openssl x509 -inform der -in Downloads/DigiCertGlobalRootCA.crt -outform pem -out DigiCertGlobalRootCA.pem
You can now upload this certificate (cert), private key (cert_key) and root certificate (ca_cert) via the dashboard by selecting the Mutual TLS
authentication method. Alternatively, you can use the POST /vault-forward/configs/{id}/authentications API as follows.
Message Level Encryption encrypts the payload sent to Visa, and this is generally recommended for most Visa endpoints
that send sensitive PCI data. This can be configured on a per merchant basis.To set up MLE, create a new key via the Visa Developer Center -> Merchant name -> Credentials -> Encryption/Decryption. Note
the key ID and key value. You can then send this key (key) and key ID (key_id) via the dashboard by selecting the Message Level Encryption
authentication method. Alternatively, you can use the POST /vault-forward/configs/{id}/authentications API as follows.
We will automatically apply mutual TLS and merchant level encryption to the API request sent to Visa.We will return the payload and headers received from Visa like any other forward request. It’s expected that the output is encrypted as merchants are expected to decrypt the response data themselves.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"mattilda Pay","colors":{"primary":"#0069ED","light":"#4D9CFF","dark":"#0050B4"},"logo":{"light":"https://mintcdn.com/mattilda/yVMPq-_dro0vSEiX/assets/logos/light.svg?fit=max\u0026auto=format\u0026n=yVMPq-_dro0vSEiX\u0026q=85\u0026s=ebe404856efad414fe0e5816e122fbf3","dark":"https://mintcdn.com/mattilda/yVMPq-_dro0vSEiX/assets/logos/dark.svg?fit=max\u0026auto=format\u0026n=yVMPq-_dro0vSEiX\u0026q=85\u0026s=5064d58e92f6cf9e1b73945b8043e745"},"favicon":"https://mintcdn.com/mattilda/NYRslQ0epuL-JaEH/assets/favicon.png?fit=max\u0026auto=format\u0026n=NYRslQ0epuL-JaEH\u0026q=85\u0026s=0b246d2ab24fa7d49ab657027a1a4bf8","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["csharp","go","java","php","python","typescript"]},"mdx":{"auth":{"method":"bearer"},"server":["https://api.sandbox.mattildapayments.com","https://api.mattildapayments.com"]}},"navbar":{"links":[{"icon":"github","href":"https://github.com/gr4vy","label":"GitHub"}],"primary":{"type":"button","label":"mattilda Pay","href":"https://mattildapay.com"}},"footer":{"socials":{"website":"https://mattildapay.com","github":"https://github.com/gr4vy","linkedin":"https://www.linkedin.com/company/mattilda.io"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":true},"integrations":{"intercom":{"appId":"bp5sj6z7"}},"contextual":{"options":["chatgpt","claude","copy","view"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mattilda","hasAudioNarration":false,"actualSubdomain":"mattilda","customDomains":["docs.mattildapayments.com"],"gitSource":{"type":"github","owner":"mattilda-education","repo":"gr4vy-docs-mintlify","deployBranch":"mattilda_pay","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad7fc40b86df1a05c8ecc42","collectionId":"46b32a21-1651-4bba-87de-5045c78e185e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad7fc40b86df1a05c8ecc42"},"feedback":{"thumbs":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ad7fc40b86df1a05c8ecc42","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Payments","count":133},{"language":"default","tag":"API Reference","count":80},{"language":"default","tag":"Integration","count":69},{"language":"default","tag":"Features","count":47},{"language":"default","tag":"Quick start","count":32},{"language":"default","tag":"Vault","count":18},{"language":"default","tag":"E-commerce Plugins","count":15},{"language":"default","tag":"Embed","count":13},{"language":"default","tag":"Other","count":12},{"language":"default","tag":"Network tokens","count":11}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".payment-service-definition{background-color:#fff!important;border:1px solid #0a0e0d1a;border-radius:16px;padding:2em;vertical-align:middle}.payment-service-definition img{margin:0 1em 0 0;max-width:3em;display:inline-block}.payment-service-definition h2{margin:0;display:inline-block;position:relative;top:.1em}"}],"page":{"pagePath":"guides/features/vault-forwarding/visa","slug":"/guides/features/vault-forwarding/visa","pageMetadata":{"title":"Advanced authentication for Visa","sidebarTitle":"Visa","description":null,"href":"/guides/features/vault-forwarding/visa"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Please ensure the Visa endpoints have been enabled for your instance by our support team.`}),`\n`,_jsx(Heading,{level:`2`,id:`setup`,children:`Setup`}),`\n`,_jsxs(_components.p,{children:[`Once the Visa endpoint has been enabled, head over to the dashboard, switch to `,_jsx(_components.strong,{children:`Settings`}),` -> `,_jsx(_components.strong,{children:`Manage merchants`}),` then edit your merchant account\nusing the actions menu, `,_jsx(_components.strong,{children:`…`}),` -> `,_jsx(_components.strong,{children:`Edit merchant`}),`. In a single merchant environment you may be able to go to this screen\ndirectly via the `,_jsx(_components.strong,{children:`Settings`}),` -> `,_jsx(_components.strong,{children:`Configuration`}),` menu.`]}),`\n`,_jsxs(_components.p,{children:[`Next, switch to the `,_jsx(_components.strong,{children:`Vault Forwarding`}),` tab and you should see the Visa endpoint enabled for\nyour environment. In the actions menu should have an option to edit the `,_jsx(_components.strong,{children:`Authentication methods`}),`.\nClick on this menu, and it will take you to a new screen to set up\nan authentication.`]}),`\n`,_jsx(_components.p,{children:`Visa has 2 authentication methods that can be set up: Message Level Encryption (MLE) and mutual TLS (mTLS).`}),`\n`,_jsx(Heading,{level:`3`,id:`mutual-tls-mtls`,children:`Mutual TLS (mTLS)`}),`\n`,_jsx(_components.p,{children:`Mutual TLS ensures that all data between our system and Visa is encrypted at the TLS (SSL) level. This is generally a required authentication method for Visa endpoints\nand will be the same for any merchant account.`}),`\n`,_jsxs(_components.p,{children:[`To set up mTLS, head over to the `,_jsx(_components.strong,{children:`Visa Developer Center`}),` and switch to your merchant account, `,_jsx(_components.strong,{children:`Credentials`}),` and register a new certificate.\nOnce set up you should have a private key and 2 certificates. You can always redownload your certificate from the Visa dashboard by going to `,_jsx(_components.strong,{children:`Credentials`}),` -> `,_jsx(_components.strong,{children:`Actions`}),`.\n-?> `,_jsx(_components.strong,{children:`Download Certificate`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Similarly, you can download the DigiCert Global Root CA’ certificate from the Visa dashboard as well. This root certificate may require conversion to the `,_jsx(_components.code,{children:`pem`}),` format.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`openssl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` x509`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -inform`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` der`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -in`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` Downloads/DigiCertGlobalRootCA.crt`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -outform`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` pem`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -out`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` DigiCertGlobalRootCA.pem`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`You can now upload this certificate (`,_jsx(_components.code,{children:`cert`}),`), private key (`,_jsx(_components.code,{children:`cert_key`}),`) and root certificate (`,_jsx(_components.code,{children:`ca_cert`}),`) via the dashboard by selecting the Mutual TLS\nauthentication method. Alternatively, you can use the `,_jsx(_components.a,{href:`/reference/vault-forwarding/add-vault-forward-authentication`,children:_jsx(_components.code,{children:`POST /vault-forward/configs/{id}/authentications`})}),` API as follows.`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Request`,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"kind\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"mtls\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"mTLS\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"fields\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"cert\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"{cert}\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"cert_key\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"{cert_key}\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ca_cert\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"{ca_cert}\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsxs(_components.p,{children:[`Note the created `,_jsx(_components.code,{children:`id`}),` of the authentication for later.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Please ensure keys and certificates are uploaded in a multiline format, without any extra spaces, new lines, or other characters.`})}),`\n`,_jsx(Heading,{level:`3`,id:`message-level-encryption-mle`,children:`Message Level Encryption (MLE)`}),`\n`,_jsx(_components.p,{children:`Message Level Encryption encrypts the payload sent to Visa, and this is generally recommended for most Visa endpoints\nthat send sensitive PCI data. This can be configured on a per merchant basis.`}),`\n`,_jsxs(_components.p,{children:[`To set up MLE, create a new key via the `,_jsx(_components.strong,{children:`Visa Developer Center`}),` -> `,_jsx(_components.strong,{children:`Merchant name`}),` -> `,_jsx(_components.strong,{children:`Credentials`}),` -> `,_jsx(_components.strong,{children:`Encryption/Decryption`}),`. Note\nthe key ID and key value. You can then send this key (`,_jsx(_components.code,{children:`key`}),`) and key ID (`,_jsx(_components.code,{children:`key_id`}),`) via the dashboard by selecting the Message Level Encryption\nauthentication method. Alternatively, you can use the `,_jsx(_components.a,{href:`/reference/vault-forwarding/add-vault-forward-authentication`,children:_jsx(_components.code,{children:`POST /vault-forward/configs/{id}/authentications`})}),` API as follows.`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Request`,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"kind\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"mle\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"MLE\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"fields\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"key_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"{key_id}\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"{key}\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsxs(_components.p,{children:[`Note the created `,_jsx(_components.code,{children:`id`}),` of the authentication for later.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Please ensure keys are uploaded in a multiline format, without any extra spaces, new lines, or other characters.`})}),`\n`,_jsx(Heading,{level:`2`,id:`usage`,children:`Usage`}),`\n`,_jsx(_components.p,{children:`To connect to the Visa API, create an HTTP request with the following headers.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`x-vault-forward-url`}),`: `,_jsx(_components.code,{children:`https://sandbox.api.visa.com/vop/v1/users/addcard`}),` or the production equivalent`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`x-vault-forward-http-method: POST`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`x-vault-forward-payment-methods`}),`: the ID’s for each of the payment methods to forward`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`x-vault-forward-header-content-type: application/json`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`x-vault-forward-header-authorization:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Visa Developer Center`}),` -> `,_jsx(_components.strong,{children:`Merchant name`}),` -> `,_jsx(_components.strong,{children:`Credentials`}),` -> `,_jsx(_components.strong,{children:`expand row`})]}),`\n`,_jsxs(_components.li,{children:[`Generate `,_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#basic_authentication_scheme`,children:`basic authentication header`}),` with the given User ID and Password.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`x-vault-forward-authentications`}),`: the comma separated IDs of the mTLS and MLE authentication methods set up earlier`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Then, make a `,_jsx(_components.code,{children:`POST`}),` request to `,_jsx(_components.a,{href:`/reference/vault-forwarding/make-vault-forward`,children:_jsx(_components.code,{children:`/vault-forward`})}),` as follows.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"card\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"expirationYear\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"{{ CARD_EXPIRATION_DATE_YYYY_1 }}\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"cvv\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"123\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"nameOnCard\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Test ABC\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"billingZipCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"94354\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"expirationMonth\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"{{ CARD_EXPIRATION_DATE_M_1 }}\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"cardNumber\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"{{ CARD_NUMBER_1 }}\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"userKey\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"9890124569\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"communityCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"GAP\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`We will automatically apply mutual TLS and merchant level encryption to the API request sent to Visa.`}),`\n`,_jsx(_components.p,{children:`We will return the payload and headers received from Visa like any other forward request. It’s expected that the output is encrypted as merchants are expected to decrypt the response data themselves.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Advanced authentication for Visa","sidebarTitle":"Visa","description":null,"href":"/guides/features/vault-forwarding/visa"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Setup","slug":"setup","depth":2,"children":[{"title":"Mutual TLS (mTLS)","slug":"mutual-tls-mtls","depth":3,"children":[]},{"title":"Message Level Encryption (MLE)","slug":"message-level-encryption-mle","depth":3,"children":[]}]},{"title":"Usage","slug":"usage","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/mattilda/eb353c0e6fdb81a8/assets/data/payment-service-definitions.js"],"subdomain":"mattilda","siteName":"mattilda Pay","title":"Advanced authentication for Visa - mattilda Pay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-06T01:21:33.154Z","originalFileLocation":"guides/features/vault-forwarding/visa.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"mattilda Pay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Advanced authentication for Visa - mattilda Pay\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"mattilda Pay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mattilda.mintlify.app/_mintlify/api/og/v2?division=Advanced+authentication\u0026amp;title=Advanced+authentication+for+Visa\u0026amp;theme=1bb22e23ee692bf7bb82e1f1\u0026amp;signature=12b1473828c105672a273fbbc01125ea979c5707a9069e7ed7715a1f66d29bf5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Advanced authentication for Visa - mattilda Pay\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mattilda.mintlify.app/_mintlify/api/og/v2?division=Advanced+authentication\u0026amp;title=Advanced+authentication+for+Visa\u0026amp;theme=1bb22e23ee692bf7bb82e1f1\u0026amp;signature=12b1473828c105672a273fbbc01125ea979c5707a9069e7ed7715a1f66d29bf5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/mattilda/OkS2-p2fdXqcdBmD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"mattilda Pay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0069ED\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/features/vault-forwarding/visa.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mattildapayments.com/#organization\",\"name\":\"mattilda Pay\",\"url\":\"https://docs.mattildapayments.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mattilda/yVMPq-_dro0vSEiX/assets/logos/light.svg?fit=max\u0026auto=format\u0026n=yVMPq-_dro0vSEiX\u0026q=85\u0026s=ebe404856efad414fe0e5816e122fbf3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mattildapayments.com#website\",\"name\":\"mattilda Pay\",\"url\":\"https://docs.mattildapayments.com\",\"publisher\":{\"@id\":\"https://docs.mattildapayments.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa#webpage\",\"url\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa\",\"name\":\"Advanced authentication for Visa\",\"dateModified\":\"2026-04-06T01:21:33.154Z\",\"isPartOf\":{\"@id\":\"https://docs.mattildapayments.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Cloud Vault\",\"item\":\"https://docs.mattildapayments.com/guides/features/token-import/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vault Forward\",\"item\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Advanced authentication\",\"item\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/authentication\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Advanced authentication for Visa\",\"item\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa#article\",\"headline\":\"Advanced authentication for Visa\",\"name\":\"Advanced authentication for Visa\",\"url\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mattildapayments.com/guides/features/vault-forwarding/visa#webpage\"},\"dateModified\":\"2026-04-06T01:21:33.154Z\",\"publisher\":{\"@id\":\"https://docs.mattildapayments.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mattildapayments.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"mattilda Pay\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"mattilda Pay","nav":{"global":null,"tabs":[{"tab":"Payments","groups":[{"group":"Getting Started","pages":[{"sidebarTitle":"Overview","title":"Getting started with mattilda Pay","mode":"wide","href":"/guides/get-started"}]},{"group":"Integration","pages":[{"group":"Embed","pages":[{"group":"Quick start","pages":[{"title":"Embed","sidebarTitle":"Introduction","href":"/guides/payments/embed/quick-start/overview"},{"title":"Step 1: Create an API key for use with Embed","sidebarTitle":"1. Create API key","href":"/guides/payments/embed/quick-start/key"},{"title":"Step 2: Generate a client token for use with Embed","sidebarTitle":"2. Generate token","href":"/guides/payments/embed/quick-start/sdks"},{"title":"Step 3: Add Embed","sidebarTitle":"3. Embed checkout","href":"/guides/payments/embed/quick-start/embed"},{"title":"Step 4: Inspect a transaction","sidebarTitle":"4. Inspect transaction","href":"/guides/payments/embed/quick-start/inspect"},{"title":"Step 5: Go live","sidebarTitle":"5. Go live","href":"/guides/payments/embed/quick-start/live"}]},{"title":"Digital wallets in Embed","sidebarTitle":"Digital wallets","href":"/guides/payments/embed/digital-wallets"},{"title":"Embed events","sidebarTitle":"Events","href":"/guides/payments/embed/events"},{"title":"Embed localization","sidebarTitle":"Locales","href":"/guides/payments/embed/locale"},{"title":"Embed Theming","sidebarTitle":"Theming","href":"/guides/payments/embed/theming"},{"title":"Embed options","sidebarTitle":"Options","mode":"wide","href":"/guides/payments/embed/options"},{"title":"In-app browsers with Embed","sidebarTitle":"In-app browsers","href":"/guides/payments/embed/in-app-browsers"},{"title":"Common issues with Embed","sidebarTitle":"Common issues","href":"/guides/payments/embed/common-issues"}]},{"group":"Secure Fields","pages":[{"group":"Quick start","pages":[{"title":"Secure Fields","sidebarTitle":"Introduction","href":"/guides/payments/secure-fields/quick-start/overview"},{"title":"Step 1: Create an API key for use with Secure Fields","sidebarTitle":"1. Create API key","href":"/guides/payments/secure-fields/quick-start/key"},{"title":"Step 2: Create a checkout sessions","sidebarTitle":"2. Create a session","href":"/guides/payments/secure-fields/quick-start/sdks"},{"title":"Step 3: Add secure fields","sidebarTitle":"3. Add secure fields","href":"/guides/payments/secure-fields/quick-start/embed"},{"title":"Step 4: Create a transaction","sidebarTitle":"4. Create transaction","href":"/guides/payments/secure-fields/quick-start/transact"}]},{"title":"Secure Fields with stored cards","sidebarTitle":"Stored cards","href":"/guides/payments/secure-fields/stored-cards"},{"title":"Secure Fields theming","sidebarTitle":"Theming","href":"/guides/payments/secure-fields/theming"},{"title":"Secure Fields events","sidebarTitle":"Events","href":"/guides/payments/secure-fields/events"},{"title":"Click to Pay with Secure Fields","sidebarTitle":"Click to Pay","href":"/guides/payments/secure-fields/click-to-pay"},{"title":"Secure Fields and 3DS","sidebarTitle":"3DS","href":"/guides/payments/secure-fields/three-d-secure"}]},{"group":"Direct API","pages":[{"group":"Quick start","pages":[{"title":"Direct API","sidebarTitle":"Introduction","href":"/guides/payments/direct-api/quick-start/overview"},{"title":"Step 1: Authentication","sidebarTitle":"1. Authentication","href":"/guides/payments/direct-api/quick-start/key"},{"title":"Step 2: Get a list of payment options","sidebarTitle":"2. Get payment options","href":"/guides/payments/direct-api/quick-start/payment-options"},{"title":"Step 3: Create a transaction","sidebarTitle":"3. Create transaction","href":"/guides/payments/direct-api/quick-start/transaction"},{"title":"Step 4: Handle redirect","sidebarTitle":"4. Handle redirect","href":"/guides/payments/direct-api/quick-start/handle-redirect"},{"title":"Step 5: Get transaction result","sidebarTitle":"5. Get transaction result","href":"/guides/payments/direct-api/quick-start/status"}]}]},{"group":"Android SDK","pages":[{"group":"Quick start","pages":[{"title":"Android SDK","sidebarTitle":"Introduction","href":"/guides/payments/android/quick-start/overview"},{"title":"Step 1: Create an API key for use with Android","sidebarTitle":"1. Create API key","href":"/guides/payments/android/quick-start/key"},{"title":"Step 2: Generate a client token for use with Android","sidebarTitle":"2. Generate token","href":"/guides/payments/android/quick-start/sdks"},{"title":"Step 3: Install the Android SDK","sidebarTitle":"3. Install Android SDK","href":"/guides/payments/android/quick-start/android"},{"title":"Step 4: Create a transaction","sidebarTitle":"4. Create transaction","href":"/guides/payments/android/quick-start/transact"}]},{"title":"Google Pay on Android","sidebarTitle":"Google Pay","href":"/guides/payments/android/google-pay"},{"title":"Android events","sidebarTitle":"Events","href":"/guides/payments/android/events"},{"title":"Android options","sidebarTitle":"Options","mode":"wide","href":"/guides/payments/android/options"}]},{"group":"iOS SDK","pages":[{"group":"Quick start","pages":[{"title":"iOS SDK","sidebarTitle":"Introduction","href":"/guides/payments/ios/quick-start/overview"},{"title":"Step 1: Create an API key for use with iOS","sidebarTitle":"1. Create API key","href":"/guides/payments/ios/quick-start/key"},{"title":"Step 2: Generate a client token for use with iOS","sidebarTitle":"2. Generate token","href":"/guides/payments/ios/quick-start/sdks"},{"title":"Step 3: Install the iOS SDK","sidebarTitle":"3. Install iOS SDK","href":"/guides/payments/ios/quick-start/ios"},{"title":"Step 4: Create a transaction","sidebarTitle":"4. Create transaction","href":"/guides/payments/ios/quick-start/transact"}]},{"title":"Apple Pay on iOS","sidebarTitle":"Apple Pay","href":"/guides/payments/ios/apple-pay"},{"title":"iOS events","sidebarTitle":"Events","href":"/guides/payments/ios/events"},{"title":"iOS options","sidebarTitle":"Options","mode":"wide","href":"/guides/payments/ios/options"}]},{"group":"React Native","pages":[{"group":"Quick start","pages":[{"title":"React Native SDK","sidebarTitle":"Introduction","href":"/guides/payments/react-native/quick-start/overview"},{"title":"Step 1: Create an API key for use with React Native","sidebarTitle":"1. Create API key","href":"/guides/payments/react-native/quick-start/key"},{"title":"Step 2: Generate a client token for use with React Native","sidebarTitle":"2. Generate token","href":"/guides/payments/react-native/quick-start/sdks"},{"title":"Step 3: Install the React Native SDK","sidebarTitle":"3. Install React Native SDK","href":"/guides/payments/react-native/quick-start/embed"},{"title":"Step 4: Create a transaction","sidebarTitle":"4. Create transaction","href":"/guides/payments/react-native/quick-start/transact"}]},{"title":"Apple Pay on React Native","sidebarTitle":"Apple Pay","href":"/guides/payments/react-native/apple-pay"},{"title":"Google Pay on React Native","sidebarTitle":"Google Pay","href":"/guides/payments/react-native/google-pay"},{"title":"React Native events","sidebarTitle":"Events","href":"/guides/payments/react-native/events"},{"title":"React Native options","sidebarTitle":"Options","mode":"wide","href":"/guides/payments/react-native/options"}]},{"group":"E-commerce Plugins","pages":[{"group":"commercetools","pages":[{"title":"commercetools Integration","sidebarTitle":"Overview","href":"/guides/payments/commercetools/overview"},{"title":"commercetools Installation","sidebarTitle":"Installation","href":"/guides/payments/commercetools/installation"},{"title":"commercetools Configuration","sidebarTitle":"Configuration","href":"/guides/payments/commercetools/configuration"},{"title":"commercetools Administration","sidebarTitle":"Administration","href":"/guides/payments/commercetools/backend"},{"title":"commercetools Frontend","sidebarTitle":"Frontend","href":"/guides/payments/commercetools/frontend"}]},{"group":"Magento","pages":[{"title":"Magento Plugin","sidebarTitle":"Overview","href":"/guides/payments/magento/overview"},{"title":"Magento Installation","sidebarTitle":"Installation","href":"/guides/payments/magento/installation"},{"title":"Magento Configuration","sidebarTitle":"Configuration","href":"/guides/payments/magento/configuration"},{"title":"Magento Administration","sidebarTitle":"Administration","href":"/guides/payments/magento/backend"},{"title":"Magento Frontend","sidebarTitle":"Frontend","href":"/guides/payments/magento/frontend"}]},{"group":"Salesforce Commerce Cloud","pages":[{"title":"Salesforce Commerce Cloud Cartridge","sidebarTitle":"Overview","href":"/guides/payments/sfcc/overview"},{"title":"Salesforce Commerce Cloud Installation","sidebarTitle":"Installation","href":"/guides/payments/sfcc/installation"},{"title":"Salesforce Commerce Cloud Configuration","sidebarTitle":"Configuration","href":"/guides/payments/sfcc/configuration"},{"title":"Salesforce Commerce Cloud Administration","sidebarTitle":"Administration","href":"/guides/payments/sfcc/backend"},{"title":"Salesforce Commerce Cloud Frontend","sidebarTitle":"Frontend","href":"/guides/payments/sfcc/frontend"}]}]}]},{"group":"Tools","pages":[{"title":"Command Line Interface (CLI)","sidebarTitle":"CLI","href":"/guides/tools/cli"},{"title":"Postman Collection","sidebarTitle":"Postman","href":"/guides/tools/postman"}]},{"group":"Cloud Vault","pages":[{"group":"Import card data","pages":[{"title":"Vault token import","sidebarTitle":"Overview","href":"/guides/features/token-import/overview"},{"title":"Token import file creation","sidebarTitle":"Import file","mode":"wide","href":"/guides/features/token-import/token-import-file"},{"title":"Token import file upload","sidebarTitle":"Upload tokens","href":"/guides/features/token-import/token-file-transmission"},{"title":"Creating buyers \u0026 payment methods on import","sidebarTitle":"Buyers \u0026 payment methods","href":"/guides/features/token-import/buyer-payment-creation"}]},{"group":"Vault Forward","pages":[{"title":"Vault Forward","sidebarTitle":"Overview","href":"/guides/features/vault-forwarding/overview"},{"title":"Enable a Vault Forward endpoint","sidebarTitle":"Enable endpoint","href":"/guides/features/vault-forwarding/enable"},{"title":"Vault Forward card data to API endpoint","sidebarTitle":"Forward to endpoint","href":"/guides/features/vault-forwarding/forward"},{"title":"Vault Forward card data from a checkout session","sidebarTitle":"CVV \u0026 Secure Fields","href":"/guides/features/vault-forwarding/checkout-sessions"},{"group":"Advanced authentication","pages":[{"title":"Advanced authentication for Vault Forward","sidebarTitle":"Overview","description":null,"href":"/guides/features/vault-forwarding/authentication"},{"title":"Advanced authentication for Visa","sidebarTitle":"Visa","href":"/guides/features/vault-forwarding/visa"}]}]}]},{"group":"Features","pages":[{"group":"3-D Secure","pages":[{"title":"3-D Secure","sidebarTitle":"Overview","description":null,"href":"/guides/features/3ds/overview"},{"title":"Setup 3-D Secure","sidebarTitle":"Setup","href":"/guides/features/3ds/setup"},{"title":"3-D Secure in Embed","sidebarTitle":"Embed","href":"/guides/features/3ds/embed"},{"title":"Hosted 3-D Secure","sidebarTitle":"Hosted via API","href":"/guides/features/3ds/hosted"},{"title":"External 3-D Secure server","sidebarTitle":"External 3DS server","href":"/guides/features/3ds/external"},{"title":"3-D Secure Testing","sidebarTitle":"Testing","href":"/guides/features/3ds/testing"}]},{"group":"Account updater","pages":[{"title":"Account Updater","sidebarTitle":"Overview","href":"/guides/features/account-updater/overview"},{"title":"Manual account updates","sidebarTitle":"Manual updates","href":"/guides/features/account-updater/integration"},{"title":"Scheduled account updates","sidebarTitle":"Scheduled updates","href":"/guides/features/account-updater/scheduler"},{"title":"Real time","href":"/guides/features/account-updater/real-time"}]},{"group":"AFTs","pages":[{"title":"Overview","href":"/guides/features/account-funding-transactions/overview"}]},{"group":"Anti-fraud","pages":[{"title":"Anti-fraud","sidebarTitle":"Overview","href":"/guides/features/anti-fraud/overview"},{"title":"Automatic anti-fraud device fingerprinting","sidebarTitle":"Fingerprints","href":"/guides/features/anti-fraud/fingerprint"},{"title":"Anti-fraud reviews","sidebarTitle":"Reviews","href":"/guides/features/anti-fraud/reviews"}]},{"group":"Apple Pay","pages":[{"title":"Apple Pay","sidebarTitle":"Overview","href":"/guides/features/apple-pay/overview"},{"title":"Apple Pay on web with Embed","sidebarTitle":"Web with Embed","href":"/guides/features/apple-pay/web"},{"title":"Apple Pay on web without Embed","sidebarTitle":"Web without Embed","href":"/guides/features/apple-pay/web-without-sdk"},{"title":"Apple Pay on iOS with the SDK","sidebarTitle":"iOS with SDK","href":"/guides/features/apple-pay/ios"},{"title":"Apple Pay on iOS without the SDK","sidebarTitle":"iOS without SDK","href":"/guides/features/apple-pay/ios-without-sdk"},{"title":"Decrypted Apple Pay tokens","sidebarTitle":"Decrypted tokens","href":"/guides/features/apple-pay/decrypted-tokens"}]},{"group":"Google Pay","pages":[{"title":"Google Pay","sidebarTitle":"Overview","href":"/guides/features/google-pay/overview"},{"title":"Google Pay on web with Embed","sidebarTitle":"Web with Embed","href":"/guides/features/google-pay/web"},{"title":"Google Pay on web without Embed","sidebarTitle":"Web without Embed","href":"/guides/features/google-pay/web-without-sdk"},{"title":"Google Pay on Android with the SDK","sidebarTitle":"Android with SDK","href":"/guides/features/google-pay/mobile"},{"title":"Google Pay on Android without the SDK","sidebarTitle":"Android without SDK","href":"/guides/features/google-pay/mobile-without-sdk"},{"title":"Decrypted Google Pay tokens","sidebarTitle":"Decrypted tokens","href":"/guides/features/google-pay/decrypted-tokens"}]},{"group":"Guest checkout","pages":[{"title":"Guest checkout","sidebarTitle":"Overview","href":"/guides/features/guest-checkout/overview"},{"title":"Linking guests buyer details","sidebarTitle":"Buyer linking","href":"/guides/features/guest-checkout/linking"}]},{"group":"Network tokens","pages":[{"title":"Network tokens","sidebarTitle":"Overview","href":"/guides/features/network-tokens/overview"},{"title":"Network token implementation","sidebarTitle":"Implementation","href":"/guides/features/network-tokens/implementation"},{"title":"Network token lifecycle management","sidebarTitle":"Lifecycle","href":"/guides/features/network-tokens/lifecycle"},{"title":"Network Token Testing","sidebarTitle":"Testing","href":"/guides/features/network-tokens/testing"},{"title":"Network token pass through","sidebarTitle":"Pass through","href":"/guides/features/network-tokens/passthrough"}]},{"group":"Payment links","pages":[{"title":"Payment links","sidebarTitle":"Overview","href":"/guides/features/payment-links/overview"},{"title":"Sharing the payment link","sidebarTitle":"Sharing","href":"/guides/features/payment-links/sharing"},{"title":"Payment link expiration and statuses","sidebarTitle":"Expiration \u0026 Status","href":"/guides/features/payment-links/statuses"}]},{"group":"Recurring payments","pages":[{"title":"Recurring payments","sidebarTitle":"Overview","href":"/guides/features/recurring-payments/overview"},{"title":"Common scenarios","href":"/guides/features/recurring-payments/scenarios"},{"title":"Recurring transactions with Embed","sidebarTitle":"In Embed","href":"/guides/features/recurring-payments/embed"},{"title":"Open-loop versus closed-loop","sidebarTitle":"Open or Closed-loop","href":"/guides/features/recurring-payments/open-loop"},{"title":"Recurring payments with network tokens","sidebarTitle":"Network tokens","href":"/guides/features/recurring-payments/network-tokens"}]},{"group":"Scheme Cards","pages":[{"title":"Card fingerprints","sidebarTitle":"Card fingerprints","href":"/guides/features/cards/fingerprints"}]},{"group":"Simulators","pages":[{"title":"Transaction simulators","sidebarTitle":"Overview","href":"/guides/features/simulators/overview"}]},{"group":"SPEI","pages":[{"title":"SPEI bank transfers","sidebarTitle":"Overview","href":"/guides/features/spei/overview"}]},{"group":"Webhooks","pages":[{"title":"Webhooks","sidebarTitle":"Introduction","href":"/guides/features/webhooks/overview"},{"title":"Webhook payload","sidebarTitle":"Payload","href":"/guides/features/webhooks/payload"},{"title":"Webhook events","sidebarTitle":"Events","mode":"wide","href":"/guides/features/webhooks/events"},{"title":"Technical webhook considerations","sidebarTitle":"Technical considerations","href":"/guides/features/webhooks/technical-considerations"},{"title":"Webhook signatures","sidebarTitle":"Signatures","href":"/guides/features/webhooks/signatures"}]}]},{"group":"Other","pages":[{"group":"API","pages":[{"title":"Best practice","href":"/guides/best-practice"},{"title":"Transaction error codes","sidebarTitle":"Error Codes","mode":"wide","href":"/guides/api/error-codes"}]},{"group":"Statuses","pages":[{"title":"Transaction statuses","sidebarTitle":"Transactions","href":"/guides/api/statuses/transactions"},{"title":"Payment method statuses","sidebarTitle":"Payment methods","href":"/guides/api/statuses/payment-methods"}]}]}]},{"tab":"Dashboard","pages":[{"title":"Dashboard","href":"/guides/dashboard/insights/homepage"}]},{"tab":"API Reference","icon":{"style":"light","name":"square-terminal"},"pages":[{"title":"API Reference","href":"/guides/api/authentication"}]},{"tab":"Updates","hidden":true,"pages":[{"title":"Updates","href":"/updates"}]}]},"basePath":"","title":"Advanced authentication for Visa - mattilda Pay","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}