Hyperswitch external 3DS authentication with Netcetera and other 3DS servers

Hyperswitch can run cardholder authentication through a standalone 3DS provider, separate from authorization. This page covers the supported connectors, the setup sequence, data mapping, security and the failure points that matter before live traffic.

On this page

When should a Hyperswitch team run external 3DS authentication?

A self-hosted Hyperswitch team should consider external 3DS when it wants a dedicated 3DS server to handle cardholder authentication, separate from the payment processor. Hyperswitch supports this standalone flow through named 3DS providers, and it is requested per payment by setting request_external_three_ds_authentication on that payment. The provider authenticates the cardholder, and the result feeds into the payment. The processor still authorizes the payment. The decision therefore concerns who owns the authentication step. Teams that already license a 3DS server, or that want one authentication setup across several processors, have the clearest reason to evaluate this path.

The Hyperswitch docs list four 3DS providers: Netcetera, GPayments, 3dsecure.io and the Juspay 3DS Server. The docs classify each as an authentication provider and declare no payment methods for them, so none of these can take over authorization. The Netcetera connector authenticates with a PEM certificate and matching private key for mutual TLS, so your team must plan certificate issuance, storage and rotation before the first call. The Juspay 3DS Server needs merchant metadata at activation, including merchant country code, merchant name, 3DS requestor ID and merchant category code. Confirm where each value comes from, since the wrong requestor ID or category code will cause authentication to fail.

Integration status matters as much as features. The docs list the Netcetera connector as sandbox and the Juspay 3DS Server as alpha. Neither listing confirms production readiness, so ask each vendor in writing whether their production environment, support terms and certification path are ready for your volumes and regions. Also ask how the provider handles errors and timeouts, because a failed authentication call needs a defined fallback in your checkout flow. Do not treat a sandbox pass as evidence that production will behave the same way.

The alternative is processor-managed 3DS, which runs through the separate Authenticate with 3D Secure via PSP flow. It usually means fewer components, one vendor relationship and less certificate and metadata work. Choose it when your processor's 3DS meets your liability and exemption needs and you do not need one authentication setup across processors. Choose standalone 3DS when a contract, data-control requirement or multi-processor routing makes a single external authentication path more valuable. Confirm with each processor connector in your routing rules that it accepts results from an external authentication step.

Before building, document the decisions: which checkout events set the per-payment flag, who holds the certificate and private key, where merchant metadata is sourced and approved, and which sandbox tests must pass before production. Assign an owner for the sandbox-to-production gap, since that gap is the most likely source of delay. Keep the scope written and the vendor confirmations on file so the decision can be reviewed when a provider changes its integration status.

Standalone 3DS or processor-managed 3DS: which path fits

Hyperswitch supports two ways to run 3D Secure. In standalone 3DS, Hyperswitch separates cardholder authentication from payment authorization and calls an external 3DS provider you have contracted with. You request this flow by setting request_external_three_ds_authentication on the payment. In processor-managed 3DS, the authentication runs through the processor's own 3DS capability, invoked with the separate Authenticate with 3D Secure via PSP flow. The two paths lead to different systems of record for authentication results, so the choice affects your integration code, your provider contracts and your evidence trail.

  • Standalone path: Hyperswitch orchestrates the authentication step and hands the result to the authorization step.
  • Processor-managed path: the processor performs authentication and returns its result to Hyperswitch.
  • Provider set: the Hyperswitch docs list Netcetera, GPayments, 3dsecure.io and the Juspay 3DS Server as authentication providers, and none of them declares payment methods.
  • Confirm first: check the current connector list and integration status in the Hyperswitch docs for your version.

Before you commit, confirm with your team which flow your processors support for each card scheme you accept.

What a standalone 3DS deployment needs before configuration

A standalone 3DS setup separates cardholder authentication from authorization, so it depends on several components being in place before any connector is configured. The cards below cover the platform, provider access, certificates, merchant metadata, network paths and contract ownership that every deployment needs to settle first. Confirm each item against the current vendor documentation before you start, because endpoint and certificate requirements can change.

Running self-hosted Hyperswitch stack

Standalone 3DS is configured inside a Hyperswitch deployment, so you need the Router and Control Center running in your own infrastructure before adding an authentication connector. Confirm that the Router can reach its PostgreSQL and Redis dependencies and that the Control Center can sign in to the merchant account you will use for testing. Record the exact Hyperswitch release you deploy, since the Control Center and web client must match the compatibility matrix published with that release.

Provider sandbox account and credentials

Netcetera, GPayments, 3dsecure.io and the Juspay 3DS Server each issue their own sandbox access, and the Hyperswitch docs list Netcetera's integration status as sandbox. Request sandbox credentials from the provider before the build starts, and confirm which environments, test cards and reporting tools the provider includes. Store the credentials in your secrets manager rather than in connector configuration files.

PEM certificate and matching private key

The Netcetera connector authenticates over mutual TLS with a PEM certificate and a private key that must match it. Ask the provider which certificate authority issues the client certificate, what key length and format it accepts, and how renewal and revocation work. Confirm the certificate and key pair with the provider's current requirements, and plan how the private key is generated, stored and rotated so it never leaves controlled storage.

Juspay 3DS Server merchant metadata

The Juspay 3DS Server connector is listed with alpha integration status and needs merchant metadata at activation. Collect the merchant country code, merchant name, 3DS requestor ID and merchant category code before you request activation, and confirm each value matches the merchant record used with your acquirer. Mismatched metadata is a common reason an authentication flow fails during onboarding, so treat these fields as shared records owned by finance and risk, not by the engineering team alone.

Network paths from the Router

The Router must make outbound connections to each provider's endpoints, and the mutual TLS handshake must complete from the subnet where it runs. Map which egress paths, proxies, firewall rules and DNS entries apply to sandbox and production, and check whether the provider requires fixed source addresses for allow-listing. Test connectivity from the same Kubernetes namespace or host that will run production traffic, not from a developer workstation.

Named merchant owner for the provider contract

Each 3DS provider is a separate contract with its own terms, support path and billing, and someone on the merchant side must hold it. Name one owner who can sign or approve the provider agreement, receive sandbox and production credentials, and answer for changes to endpoints or certificates. Ask each provider to state in writing which party is responsible for certificate renewal, endpoint changes and incident notification, so that responsibility does not fall between the provider, Hyperswitch and your team.

How to configure a 3DS provider connector in Hyperswitch

This sequence takes a self-hosted Hyperswitch stack from a healthy installation to a verified standalone 3DS flow with a provider connector running in sandbox. It ends with a test payment whose authentication result you have confirmed before any production credentials are loaded.

  1. Confirm version and deployment health

    The platform team checks which Hyperswitch release and Control Center version are running, and compares them against the compatibility matrix published with that release on the Hyperswitch releases page. Confirm that all router and supporting services report healthy, and that any required dependency for your release is running before you change anything. Check: the running versions match a supported combination, and a basic payment flow still completes in the sandbox environment.

  2. Add the 3DS provider as a connector

    An administrator with Control Center access adds the chosen provider (Netcetera, GPayments, 3dsecure.io or the Juspay 3DS Server) as a connector. Because 3DS providers are authentication providers that declare no payment methods, do not expect payment method options to appear for them. Check: the connector appears in the connector list with the correct provider name, and it is saved without validation errors.

  3. Load certificates or provider metadata

    For Netcetera, the security engineer loads the PEM certificate and its matching private key so that Hyperswitch can authenticate with mutual TLS. Store the private key only in the secrets mechanism your organization uses, and confirm the certificate matches the key before saving. For the Juspay 3DS Server, collect the merchant metadata it requires at activation, such as merchant country code, merchant name, 3DS requestor ID and merchant category code. Check: the connector saves with the credentials accepted and no mismatch errors.

  4. Set the connector to sandbox first

    Keep the connector in sandbox mode and confirm the provider's integration status in the Hyperswitch docs before you rely on it. Netcetera is listed as sandbox, while the Juspay 3DS Server is listed as alpha, so ask the provider or Juspay to confirm what your version supports before you plan any live traffic. Check: sandbox is the only environment the connector uses, and the provider's test endpoints respond to the configured credentials.

  5. Run a test payment with standalone 3DS

    The integration engineer creates a test payment that sets request_external_three_ds_authentication, which asks Hyperswitch to run cardholder authentication through the external provider rather than the processor-managed 3DS flow. Use a test card that the provider's sandbox supports and keep a record of the payment identifier. Check: the payment reaches the authentication step and the logs show the request went to the configured provider.

  6. Confirm the authentication result reaches authorization

    The integration engineer reviews the payment record and the outgoing authorization request to confirm that the authentication result from the 3DS provider is passed forward. Check the payment status, the authentication outcome and any values that the processor receives, and compare them with the sandbox documentation for your provider. Check: the authorization request carries the authentication result for the test payment, and a failed or challenged test also behaves as expected.

  7. Plan the move to production credentials

    Only after every earlier check passes, the platform and security teams plan the switch to production credentials with the 3DS provider. The plan should cover who receives production certificates or metadata, where they are stored, how the connector is switched to live mode, and how a rollback works if live authentication fails. Check: a written change record names the approvers, the rollback path and a test payment to run immediately after the switch.

How payment, provider and merchant data map across the flow

This table lists the data elements that must stay consistent across a standalone 3DS flow, from the payment-level request flag to the processor authorization that consumes the authentication result. Read each row as a handoff: find where the value is set, who owns it, and what to confirm with the provider before the first test transaction.

Data elementWhere it is setOwnerWhat to confirm with the provider
Standalone authentication request flagOn the payment request in Hyperswitch, set to request external 3DS authenticationMerchant engineering teamConfirm the flow is accepted for the card schemes and processor pairing you plan to use
Netcetera certificate and private keyHyperswitch connector configuration for the Netcetera 3DS providerSecurity or platform team holding key custodyConfirm the certificate is issued for your mutual TLS endpoint and that the key pair matches the certificate
Juspay 3DS Server merchant metadataConnector activation settings for the Juspay 3DS ServerPayments operations with merchant onboardingConfirm the values required at activation, including merchant country code, merchant name, 3DS requestor ID and merchant category code
Merchant identifiers expected by the 3DS providerProvider onboarding records and the matching Hyperswitch connector fieldsPayments operationsConfirm the exact identifier formats, which environment (sandbox or production) each identifier belongs to, and who can rotate them
Connector environment and integration statusConnector configuration per environment (sandbox, production)Platform engineeringConfirm the status listed for each connector in Hyperswitch docs matches what the provider will support for your go-live
Authentication result referenceReturned from the 3DS provider and stored against the Hyperswitch paymentMerchant engineering teamConfirm which result fields the provider returns and which ones the authorization step requires
Processor authorization requestHyperswitch sends it to the processor after authentication completesMerchant engineering and processor relationship ownerConfirm the processor accepts authentication data supplied by an external 3DS server and which fields it expects

How the authentication result reaches authorization

The authentication result is the hand-off between two separate steps. In a standalone setup, the payment is created with request_external_three_ds_authentication set, which tells Hyperswitch to run cardholder authentication through the selected external provider before the payment moves on to authorization. The provider, whether Netcetera, GPayments, 3dsecure.io or the Juspay 3DS Server, decides the outcome of that check and returns it to Hyperswitch. Authorization is then a separate request that carries the outcome forward to a processor. Keep this model in view when you compare it with processor-managed 3DS, where the authentication call goes to the processor and no separate provider result is handed back.

From the cardholder's side, the check either completes without interaction or stops for a challenge. In a frictionless flow, the provider's data collection and risk assessment finish in the background and the payment continues without a prompt. In a challenge flow, the cardholder completes a step the issuer requires, such as entering a one-time code or approving in an app, and then returns to your checkout or app. Your team needs to design the return path for both cases, including what the shopper sees if the challenge is abandoned, times out or fails. Confirm with the provider and your front-end integration which events signal completion, so the page does not wait indefinitely or submit the payment before a result exists.

From the system's side, the result is stored against the payment before authorization runs. Routing then selects the processor, and processor eligibility still decides where the payment goes. Hyperswitch's routing strategies include default fallback routing for when no rule applies or a processor is ineligible, which means a payment can reach a processor that did not expect the authentication result it received. Before go-live, ask each processor in your routing plan which authentication outcomes it accepts, which authentication data elements it needs in the authorization request, and how it treats a payment where authentication failed, was attempted or could not be completed. Record those answers as explicit routing constraints.

Treat each possible outcome as a design decision with a named owner. Map every result your provider can return to one of three paths: authorize with the result, decline, or route to a processor that accepts that result. Decide whether a failed or unavailable authentication blocks the payment or continues under a risk position your fraud and compliance teams have accepted in writing, and document that choice before build. If you use fallback routing, test the fallback path explicitly, because a payment that succeeds on the primary processor may be sent to a fallback processor that handles the same outcome differently. Log the authentication outcome and the chosen processor on each payment so support and reconciliation can trace every decision.

Do not sign off the design until you have run each path in the provider's sandbox. The docs list Netcetera with sandbox integration status and the Juspay 3DS Server with alpha status, so plan more verification for the Juspay option and confirm its result handling directly with Juspay before you depend on it. Exact result handling for each provider, including which fields are returned and how timeouts appear, should be confirmed in the provider's sandbox before you rely on general 3DS behavior. Test frictionless success, challenge success, challenge failure, abandonment and provider unavailability, and check that each one produces the payment state and processor path you documented.

Securing the 3DS connector and the card data it touches

The 3DS connector holds mutual TLS credentials and sits next to card data, so its security depends on how its keys are stored, who can change connector settings, and how logs are handled. The cards below cover the controls to decide and verify before a Netcetera or other 3DS server goes live in your environment.

Protect the Netcetera private key and PEM certificate

The Netcetera connector authenticates with a PEM certificate and a matching private key for mutual TLS, so anyone holding the key can impersonate your integration. Store both in a dedicated secrets store, not in Helm values, Git repositories or Control Center free-text fields. Restrict read access to the workloads that need it, and define a rotation procedure that is tested in sandbox before the production certificate is replaced. Confirm with Netcetera how certificates are issued and renewed for your environment.

Limit who can edit connector credentials

Connector credentials for the 3DS provider are entered and changed in the Hyperswitch Control Center, so every user with connector access can alter where authentication requests go. Limit edit rights to a small named group, and require a second person to review changes to endpoints or certificates. Review that list on a schedule and whenever someone changes role. Confirm which Control Center actions are recorded in audit history in the version you run.

Separate roles inside Hyperswitch

Hyperswitch manages roles inside the platform rather than mapping them from your identity provider, so an SSO sign-in does not carry group-based permissions across. Create the smallest set of roles that separates connector administration, routing changes and read-only operations, and assign them to named users. Because users must be invited first, the invitation list becomes your access record. Document who approves each role assignment.

Keep sandbox and production credentials apart

Netcetera is listed with sandbox integration status, so early test traffic and live cardholder authentication will use different certificates, endpoints and merchant identifiers. Keep these in separate Hyperswitch merchant accounts or environments, with separate secrets and separate Control Center users. Block production credentials from being pasted into test environments during troubleshooting. Confirm with the provider which credentials are issued for each environment.

Log connector failures without logging authentication payloads

A failing 3DS request needs enough detail to diagnose, such as the error category, connector response code, timestamp and payment reference, but authentication requests and responses can contain cardholder and transaction data. Configure logging so connector failures are captured and forwarded to your monitoring stack, while request and response bodies are excluded or masked. Set alerts on sustained error rates from the 3DS connector. Test the redaction rules with a sample failure before go-live.

Review PCI DSS scope with a qualified assessor

Running a standalone 3DS server changes which systems handle cardholder data and authentication data, which can change the scope of your PCI DSS assessment. The Hyperswitch docs place PCI DSS responsibility on the merchant in the self-hosted, in-house PCI model, so this review is your obligation, not the vendor's. Ask a qualified security assessor to map the 3DS connector, its secrets store, its logs and its network paths before production traffic flows. DeployOpen prepares evidence for that review but does not issue the assessment.

Testing external 3DS in sandbox before live traffic

Start with a sandbox run for each external 3DS provider before any live cardholder traffic reaches the standalone flow. For each provider, send test payments with request_external_three_ds_authentication set on the payment, and confirm that authentication runs as a separate step from authorization. Cover the frictionless and challenge outcomes wherever the provider's test cases allow. Not every provider exposes every outcome in sandbox, so record which outcomes you reproduced and which you could not. Netcetera is listed with sandbox integration status, while the Juspay 3DS Server is listed as alpha. Confirm with each vendor whether its sandbox fits the scope you plan to launch before you rely on it for sign-off.

Next, test the paths where authentication does not complete cleanly. Simulate a failed authentication and a timed-out authentication, and confirm with the provider how each is triggered in its sandbox. For each case, record what the router returns to the caller, whether the payment is declined, retried or left pending, and whether the merchant receives a clear status. Certificate handling needs its own cases. Netcetera authenticates with a PEM certificate and matching private key for mutual TLS, so test what happens when the certificate is past its expiry date. Also test a rotated key pair end to end, including whether old and new material can overlap during cutover. Confirm that expiry alerts exist and fire before the certificate lapses.

Then test processor authorization after each authentication outcome. After a successful authentication, confirm that the authorization request carries the authentication result the processor expects and that the payment completes. After an unsuccessful authentication, confirm that the flow follows the decision your policy sets, and that no authorization is sent when that policy calls for stopping. Test card numbers, expected authentication results and the processor's behavior for each case must come from the provider and the processor themselves. Do not build test cases from public lists or assumptions. Ask the processor which 3DS data fields it accepts from a standalone provider, and check those fields in the request logs.

Finally, check observability before go live. Logs, the Control Center and any dashboards should show the authentication outcome, the provider and the payment reference, so an operator can tell whether a decline came from authentication or from the processor. Verify that those surfaces never show a full card number, cryptographic values, the private key or certificate private material, and that router log levels do not expand request bodies. Keep a written test record for your own compliance evidence. Include the test case ID, provider, environment and software version, expected result, actual result, evidence location and the name of the person who signed off. This record supports assessment preparation, but it does not replace review by an independent auditor.

Common 3DS connector failures and how to diagnose them

This table maps the failure points most likely to stop a standalone 3DS flow, from Netcetera mutual TLS setup to Juspay 3DS Server activation metadata. Read each row from symptom to first check, and run the checks in order before changing connector configuration. Most failures trace to certificates, connector status or the split between authentication and authorization, not to card data.

SymptomLikely causeFirst checkFix
Mutual TLS handshake fails with the 3DS providerCertificate is wrong or expired, so the provider rejects the client certificate used by the RouterCheck the certificate validity dates and confirm it was issued for this environmentObtain a current PEM certificate from the provider and load it into the connector configuration
Handshake fails even though the certificate looks validPrivate key does not match the certificate, so the mutual TLS pair cannot be verifiedCompare the public key of the certificate with the public key derived from the private keyLoad the private key that belongs to the certificate, or request a matching pair from the provider
3DS requests time out or never reach the providerProvider endpoint is not reachable from the network path the Router uses, such as blocked egress or proxy rulesTest outbound connectivity to the provider endpoint from the Router host or pod on the same network pathOpen the egress route or allow-list the provider endpoint, then retest from the Router network
Tests pass but live traffic does not authenticate correctlyConnector is still configured for sandbox after go-live, so requests go to test endpoints with test credentialsConfirm the connector environment and endpoints in the Control Center match the production values from the providerSwitch to production credentials and endpoints after the provider confirms production access, then run a controlled test payment
Juspay 3DS Server will not activate or behaves inconsistentlyMerchant metadata such as country code, merchant name, 3DS requestor ID or merchant category code is missing or mismatchedCompare each metadata field with your merchant onboarding records held by your acquirer and processorCorrect the metadata values, re-run activation and check the connector status before routing live traffic
Juspay 3DS Server cannot serve as a production dependencyConnector carries alpha integration status in the Hyperswitch docs, so it is not yet a settled production dependencyCheck the current integration status in the Hyperswitch 3DS provider documentation before scheduling go-liveKeep production on a provider with a settled status, or agree the residual risk and fallback in writing before use
Authentication succeeds but the payment is declinedProcessor did not accept or could not use the external authentication result, since it makes its own authorization decisionRead the processor decline code and confirm the authentication result is linked to the same paymentAgree with the processor how external 3DS data must be sent, then retest with the processor's test cards
Team expects a challenge that never appears, or the wrong flow runsConfusion between processor-managed 3DS (Authenticate with 3D Secure via PSP) and standalone 3DS (request_external_three_ds_authentication)Check which flag or flow the payment request sends and which connector the team configuredDocument the chosen flow per merchant and remove the unused setting from request or connector configuration

Questions teams ask before running 3DS through Hyperswitch

What does setting up external 3DS in Hyperswitch cost?

Costs come from three places: DeployOpen's fixed-scope engineering work, the provider's own contract and fees, and your internal staff time. DeployOpen agrees scope, deliverables and timelines in writing before work starts and does not publish prices, so ask for a quote that separates one-time work (connector setup, certificate handling, test plans, documentation) from recurring items (hosting changes, upgrades and any support retainer you choose). Provider fees are paid directly to Netcetera, GPayments, 3dsecure.io or Juspay, so request their terms in writing, including any per-transaction and onboarding charges. Effort rises with the number of connectors, the number of payment flows routed through external authentication, custom decision logic, certificate lead times and the number of environments. Ask the quote to state who obtains certificates and who supplies merchant metadata.

How long does a first 3DS sandbox integration take?

The slowest external dependency usually sets the pace, and that is most often provider onboarding, sandbox credentials and certificate issuance. Hyperswitch configuration itself is rarely the longest step. No single duration applies to every provider, so ask for a plan that lists each external dependency, its owner and a checkpoint date. For Netcetera, the connector authenticates with a PEM certificate and matching private key for mutual TLS, so confirm how long your certificate request takes and who holds the private key. The Juspay 3DS Server is listed with alpha status, so confirm its readiness for your merchant profile before you commit to a date. Also confirm that test cases for frictionless, challenge, declined and timed-out flows are available from the provider.

What must our team provide before the integration starts?

Your team supplies the access and inputs that DeployOpen and the provider cannot create for you. Prepare the following, or agree in writing who delivers each item:

  • Provider contract and sandbox access for the chosen 3DS server, including account identifiers.
  • Certificates and keys: for Netcetera, a PEM certificate and matching private key for mutual TLS, stored through your existing secrets process.
  • Merchant metadata: for the Juspay 3DS Server, merchant country code, merchant name, 3DS requestor ID and merchant category code.
  • Environment access: Kubernetes or Docker hosts, PostgreSQL and Redis access, and a Hyperswitch sandbox or self-hosted instance.
  • Test plans: agreed expected results for each authentication outcome, reviewed with your acquirer or processor.

The written scope should show which items DeployOpen prepares, which your team supplies and which require provider action.

Can our internal team build external 3DS on Hyperswitch alone?

An internal team can build it alone if it already has payments engineering experience with Hyperswitch, PKI and certificate handling, working knowledge of 3-D Secure message flows and the capacity to design authentication test cases. The harder parts are usually coordinating the provider, obtaining certificates and proving each authentication outcome, and these depend on people outside your team. A partner makes more sense when the team is small, when the same people must also run upgrades and on-call duties, or when the first integration has a fixed date you have not yet confirmed with the provider. Whichever path you choose, decide before go-live who operates the connector, who rotates certificates and who responds when the provider changes its API. A written scope lets you compare the work against your internal capacity.

Which 3DS provider should we choose for Hyperswitch first?

Confirm four things before comparing offers: whether your acquirer or processor already performs 3DS for your card programs, which card brands and regions you must cover, what readiness the provider requires from you (contracts, certificates, metadata) and how its terms treat per-transaction fees and onboarding. Hyperswitch documentation lists Netcetera with sandbox integration status and the Juspay 3DS Server with alpha status, so an alpha connector needs a different risk plan from one in sandbox. Ask each provider to confirm in writing which card schemes and regions its service covers for your merchant profile. Choose the provider whose requirements your team can meet on your timeline, and record the decision with the reasons so later audits can trace it.

How should we handle GPayments and 3dsecure.io connectors?

Treat GPayments and 3dsecure.io as candidates to confirm, not as connectors ready to scope. The Hyperswitch documentation lists both as 3DS providers, but connector-level details for them are not yet confirmed for this implementation, so the scope cannot yet state their credential set, certificate requirements or sandbox availability. Before shortlisting either, ask the provider for sandbox access, the 3-D Secure message versions and flows it supports, its certificate or key requirements, its merchant onboarding steps and its Hyperswitch connector status. Ask DeployOpen to include a discovery step in the quote if either provider is shortlisted. That keeps the connector build out of the fixed scope until those answers are documented in writing.

When is processor-managed 3DS simpler than external authentication?

Processor-managed 3DS is simpler when your processor already performs authentication for your card programs and you do not need independent control over the 3DS server. Standalone authentication in Hyperswitch separates cardholder authentication from authorization and is requested on the payment with request_external_three_ds_authentication, while processor-managed 3DS uses the separate Authenticate with 3D Secure via PSP flow. Choose the standalone path when you need the authentication provider independent of your processor, when you want authentication data to flow through a provider you contract directly, or when several processors must share one authentication service. Expect extra work on that path: a provider contract, certificates or metadata, separate test cases and monitoring for the authentication step. Ask for both options to be costed in one quote, with the build work and post-launch operations shown for each.

How DeployOpen scopes and delivers a Hyperswitch 3DS integration

DeployOpen starts by deciding whether a standalone 3DS provider is worth the added moving parts for your authorization flow, then builds and hands over the separated authentication path in infrastructure you control. Each stage ends with written scope, tested evidence and documentation your team can run after handover.

How we scope

  • Confirm which 3DS provider you will use (Netcetera, GPayments, 3dsecure.io or the Juspay 3DS Server) and the processors that will receive authenticated payments.
  • Map where request_external_three_ds_authentication is set, and where processor-managed 3DS remains for flows you do not separate.
  • Agree the written scope in advance, since engagements are fixed-scope, with deliverables and timelines confirmed before work starts.

How we build

  • Configure the chosen 3DS connector, including the PEM certificate and matching private key used for mutual TLS with the provider.
  • Test authentication outcomes end to end in the provider sandbox before any live credentials are enabled in your environment.
  • Confirm the decision logic that routes each payment to standalone or processor-managed authentication, and test the fallback path.

How we hand over

  • Deliver configuration records, certificate handling notes and runbooks covering key rotation, connector onboarding and failure triage.
  • Document the test cases, results and any provider-specific metadata, such as requestor ID or merchant category code, that your team must maintain.
  • Walk your engineers through the deployment so they can operate and change the 3DS path without relying on DeployOpen.

How we support

  • Plan and test each Hyperswitch upgrade against the 3DS connector path, checking the release compatibility notes before rollout.
  • Offer ongoing support, upgrades and continuous testing as a retainer if you want DeployOpen to keep the integration current.
  • Confirm with your 3DS provider which connector status, certification and onboarding steps apply to your region and card programs before go-live.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.