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.
The first driver is whether you already hold a contract with a 3DS server or directly with a provider. If you do, the standalone path lets you reuse that relationship and its certificates, rather than opening a second vendor. If you do not, processor-managed 3DS usually needs less onboarding, because the authentication capability sits inside a contract you already have. Neither answer is automatically cheaper, and the price depends on terms the provider sets.
- Existing contract: confirm whether it covers Hyperswitch as a client and which environments it permits.
- No contract: ask your processor whether its 3DS capability meets your acquirer requirements.
- Connector status: the Netcetera connector is listed as sandbox, and the Juspay 3DS Server connector is listed as alpha, so plan for additional testing before production use.
- Certificates: the Netcetera connector uses a PEM certificate and matching private key for mutual TLS, so someone must own certificate issuance and renewal.
- Cost and terms: the cost and contract terms of each 3DS provider are not set by DeployOpen. Ask each provider for its own written quote and term sheet.
Ask each provider which environments and volumes its quote covers.
The standalone path gives your team more control over authentication logic, including when to request a challenge, how to handle exemptions and how to route authentication results into your own decision logic. Processor-managed 3DS keeps that logic with the processor, which means less code to write and maintain but less visibility into the rules applied. Your answer depends on whether the team has the skills and the appetite to run a second authentication system in production.
- Standalone control: you decide how authentication results feed the authorization request.
- Processor control: the processor applies its own rules, and you consume the outcome.
- Operations load: standalone adds a provider to monitor, patch and reconcile.
- Evidence: keep records of which system made each authentication decision, since audits will ask.
- Confirm: verify with your provider and processor which fields they expose so your logs are complete.
Decide who on your team will own authentication rules for the first year, and write that owner into the scope.
The number of processors behind the routing layer changes the arithmetic. Hyperswitch can route a payment across several processors, and each processor may have different 3DS capabilities and acquirer expectations. A standalone provider can give you one authentication path across processors, while processor-managed 3DS means each processor's authentication behaves differently. If you route to only one processor, processor-managed 3DS is often the simpler choice.
- One processor: processor-managed 3DS keeps the integration smallest.
- Several processors: a standalone provider can give consistent authentication across routes.
- Mixed behavior: processor-managed flows may return results with different fields, which your code must handle.
- Routing interaction: confirm how your routing rules interact with each authentication path before you enable both.
- Confirm: ask each processor which 3DS version and flow it supports for your card mix.
Map every processor in your routing plan against both paths before you choose.
The last driver is whether the processor's own 3DS results satisfy your acquirer relationship. Acquirers and processors set their own expectations for authentication data, liability and the fields they require. If the processor's results meet those expectations for your card mix and markets, processor-managed 3DS is usually sufficient. If you need authentication from a provider you choose, or you need results that your processor does not return, the standalone path becomes necessary.
- Liability: confirm with your acquirer which authentication results shift liability for your transactions.
- Data fields: confirm the authentication data your acquirer expects on authorization.
- Market scope: requirements can differ by region and card scheme.
- Written confirmation: get the acquirer's requirements in writing before you rely on them.
- Compliance readiness: DeployOpen prepares the controls and evidence for your assessment, but it does not issue audit reports or certifications.
Send your acquirer and processor the two-path comparison and ask them to confirm, in writing, that the path you choose meets their requirements.
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.
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.
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.
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.
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.
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.
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.
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 element | Where it is set | Owner | What to confirm with the provider |
|---|---|---|---|
| Standalone authentication request flag | On the payment request in Hyperswitch, set to request external 3DS authentication | Merchant engineering team | Confirm the flow is accepted for the card schemes and processor pairing you plan to use |
| Netcetera certificate and private key | Hyperswitch connector configuration for the Netcetera 3DS provider | Security or platform team holding key custody | Confirm the certificate is issued for your mutual TLS endpoint and that the key pair matches the certificate |
| Juspay 3DS Server merchant metadata | Connector activation settings for the Juspay 3DS Server | Payments operations with merchant onboarding | Confirm the values required at activation, including merchant country code, merchant name, 3DS requestor ID and merchant category code |
| Merchant identifiers expected by the 3DS provider | Provider onboarding records and the matching Hyperswitch connector fields | Payments operations | Confirm the exact identifier formats, which environment (sandbox or production) each identifier belongs to, and who can rotate them |
| Connector environment and integration status | Connector configuration per environment (sandbox, production) | Platform engineering | Confirm the status listed for each connector in Hyperswitch docs matches what the provider will support for your go-live |
| Authentication result reference | Returned from the 3DS provider and stored against the Hyperswitch payment | Merchant engineering team | Confirm which result fields the provider returns and which ones the authorization step requires |
| Processor authorization request | Hyperswitch sends it to the processor after authentication completes | Merchant engineering and processor relationship owner | Confirm the processor accepts authentication data supplied by an external 3DS server and which fields it expects |
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.
| Symptom | Likely cause | First check | Fix |
|---|---|---|---|
| Mutual TLS handshake fails with the 3DS provider | Certificate is wrong or expired, so the provider rejects the client certificate used by the Router | Check the certificate validity dates and confirm it was issued for this environment | Obtain a current PEM certificate from the provider and load it into the connector configuration |
| Handshake fails even though the certificate looks valid | Private key does not match the certificate, so the mutual TLS pair cannot be verified | Compare the public key of the certificate with the public key derived from the private key | Load the private key that belongs to the certificate, or request a matching pair from the provider |
| 3DS requests time out or never reach the provider | Provider endpoint is not reachable from the network path the Router uses, such as blocked egress or proxy rules | Test outbound connectivity to the provider endpoint from the Router host or pod on the same network path | Open the egress route or allow-list the provider endpoint, then retest from the Router network |
| Tests pass but live traffic does not authenticate correctly | Connector is still configured for sandbox after go-live, so requests go to test endpoints with test credentials | Confirm the connector environment and endpoints in the Control Center match the production values from the provider | Switch 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 inconsistently | Merchant metadata such as country code, merchant name, 3DS requestor ID or merchant category code is missing or mismatched | Compare each metadata field with your merchant onboarding records held by your acquirer and processor | Correct the metadata values, re-run activation and check the connector status before routing live traffic |
| Juspay 3DS Server cannot serve as a production dependency | Connector carries alpha integration status in the Hyperswitch docs, so it is not yet a settled production dependency | Check the current integration status in the Hyperswitch 3DS provider documentation before scheduling go-live | Keep 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 declined | Processor did not accept or could not use the external authentication result, since it makes its own authorization decision | Read the processor decline code and confirm the authentication result is linked to the same payment | Agree 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 runs | Confusion 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 configured | Document 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.

