diff --git a/about-hyperswitch/ai-resources/README.md b/about-hyperswitch/ai-resources/README.md index 157e1250..c2314a1f 100644 --- a/about-hyperswitch/ai-resources/README.md +++ b/about-hyperswitch/ai-resources/README.md @@ -1,5 +1,5 @@ --- -description: Interact with the Hyperswitch ecosystem through AI-powered documentation and MCP server for executing real API operations via natural language +description: Interact with the Juspay Hyperswitch ecosystem through AI-powered documentation and MCP server for executing real API operations via natural language hidden: true noIndex: true icon: brain-circuit @@ -9,7 +9,7 @@ icon: brain-circuit AI resources enable you to intelligently interact with the entire Hyperswitch ecosystem through conversational AI. Whether you're a developer, product manager, or business stakeholder, you can ask both technical and non-technical questions, execute real API operations, and verify results - all through natural language conversations. -#### 1. DeepWikis - AI-Powered Documentation +### 1. DeepWikis - AI-Powered Documentation Transform how you explore and understand Hyperswitch with AI-enhanced documentation across the entire ecosystem. @@ -49,7 +49,7 @@ Transform how you explore and understand Hyperswitch with AI-enhanced documentat -#### 2. MCP Server - Direct API Integration +### 2. MCP Server - Direct API Integration Execute real [Hyperswitch API](https://api-reference.hyperswitch.io/introduction) operations directly through your AI assistant using the [Model Context Protocol](https://modelcontextprotocol.io/introduction). diff --git a/about-hyperswitch/ai-resources/setup-mcp-server.md b/about-hyperswitch/ai-resources/setup-mcp-server.md index 20e232d6..da203eaa 100644 --- a/about-hyperswitch/ai-resources/setup-mcp-server.md +++ b/about-hyperswitch/ai-resources/setup-mcp-server.md @@ -1,5 +1,5 @@ --- -description: Configure the Hyperswitch MCP server to execute sandbox API operations directly through your AI assistant using natural language commands +description: Configure the Juspay Hyperswitch MCP server to execute sandbox API operations directly through your AI assistant using natural language commands icon: user-robot-xmarks --- @@ -14,11 +14,11 @@ This MCP server is only meant for product exploration while using sandbox enviro **MCP URL:** `https://api-reference.hyperswitch.io/mcp` -#### Step 1: Configure the Hyperswitch-Mintlify MCP server +### Step 1: Configure the Hyperswitch-Mintlify MCP server Hyperswitch's Mintlify MCP server lets your AI client search Hyperswitch docs and safely explore Sandbox APIs as tools (e.g., create a payment and get a 3DS/redirect URL). -##### Recommended: Claude Code +#### Recommended: Claude Code Add it via CLI: ```bash @@ -32,12 +32,11 @@ Run `claude` and verify if MCP was configured properly using `/mcp`. You should ![Verifying the MCP server](../../.gitbook/assets/mcp-verify.png) -##### For configuring other MCP clients (Cursor / Claude Desktop / etc.) +#### For configuring other MCP clients (Cursor / Claude Desktop / etc.) Follow Mintlify's [client-specific setup guide](https://www.mintlify.com/docs/ai/model-context-protocol?_gl=1*1m5cmfd*_gcl_au*MTY1NjU2NDE1LjE3NjY0NzY1MzE.#example:-connect-to-the-mintlify-mcp-server) using the same MCP: `https://api-reference.hyperswitch.io/mcp` - -#### Step 2: Make your first payment +### Step 2: Make your first payment Paste below prompt in your AI client after replacing with your sandbox `API_KEY`: @@ -46,7 +45,7 @@ Make a 100 EUR payment via Hyperswitch V1 in sandbox. Sandbox API key: ``` -##### **Output:** +#### **Output:** You can head on to payment section in [Hyperswitch Control Center](https://app.hyperswitch.io/dashboard/payments) and verify the payment with the time stamp and status as `REQUIRES_CUSTOMER_ACTION` (depending on the flow you selected - 3DS vs No3DS). diff --git a/about-hyperswitch/payment-suite-1/payment-method-card/README.md b/about-hyperswitch/payment-suite-1/payment-method-card/README.md index 8d80c678..38519025 100644 --- a/about-hyperswitch/payment-suite-1/payment-method-card/README.md +++ b/about-hyperswitch/payment-suite-1/payment-method-card/README.md @@ -12,7 +12,7 @@ Juspay Hyperswitch provides flexible payment processing with multiple flow patte ### Server-to-Server (S2S) Payments (Tokenize followed by Payment) -Refer to this section if you intend to use the SDK exclusively for vaulting/storing card details. In this scenario, the actual payment execution is handled via S2S API calls from your backend to Hyperswitch, offering you more granular control over the transaction lifecycle. +Refer to this section if you intend to use the SDK exclusively for vaulting/storing card details. In this scenario, the actual payment execution is handled via S2S API calls from your backend to Juspay Hyperswitch, offering you more granular control over the transaction lifecycle. {% endhint %} Payment method flows leverages all the capabilities available in [Payments](https://docs.hyperswitch.io/~/revisions/Moc8cqgBbfb8T8KrBi8V/about-hyperswitch/payment-suite-1/payments-cards). The primary goal here is to allow the business to control the payment journey via S2S APIs and a token or `payment_method_id` @@ -21,19 +21,17 @@ The business can use the Payment Method SDK or `/payment-methods` API to first c The business can then use the `payment_method_id` in `/payments` API to perform all functionalities supported by the [Payments](https://docs.hyperswitch.io/~/revisions/Moc8cqgBbfb8T8KrBi8V/about-hyperswitch/payment-suite-1/payments-cards) flow. -#### **Payment Method Lifecycle** +### **Payment Method Lifecycle** The Payment Method flow leverages the full suite of Juspay Hyperswitch [Payment](https://docs.hyperswitch.io/~/revisions/Moc8cqgBbfb8T8KrBi8V/about-hyperswitch/payment-suite-1/payments-cards) capabilities while granting businesses granular control over the user journey. By utilizing Server-to-Server (S2S) APIs and unique identifiers `payment_method_id`, businesses can separate the collection of payment credentials from the actual transaction logic. -#### **The Two-Step Integration Pattern** +### **The Two-Step Integration Pattern** - - -##### 1. **Credential Capture & Vaulting** +#### 1. **Credential Capture & Vaulting** The business initiates the flow by capturing payment details (such as cards, wallets, or bank accounts) using either the Payment Method SDK or the `/payment-methods` API. This process securely vaults the payment instrument and generates a unique `payment_method_id`. -##### 2. **Transaction Execution** +#### 2. **Transaction Execution** Once the `payment_method_id` is generated, it serves as a reusable token. The business can pass this ID into the /payments API to execute any supported [Payment](https://docs.hyperswitch.io/~/revisions/Moc8cqgBbfb8T8KrBi8V/about-hyperswitch/payment-suite-1/payments-cards) functionality without re-collecting sensitive data. @@ -42,9 +40,9 @@ The `payment_method_id` serves as a unique identifier mapped to a specific combi * Logic: A single customer can have multiple payment methods, each assigned a distinct ID. However, the same payment instrument used by the same customer will always resolve to the same `payment_method_id`. * Scope: This uniqueness applies across all payment types, including cards, wallets, and bank details. -| **Customer ID** | **Payment Instrument** | **Payment Method ID** | -| --------------- | --------------------------------- | --------------------- | -| 123 | Visa ending in 4242 | `PM1` | -| 123 | Mastercard ending in 1111 | `PM2` | -| 456 | Visa ending in 4242 | `PM3` | -| 123 | PayPal Account (`user@email.com`) | `PM4` | + | **Customer ID** | **Payment Instrument** | **Payment Method ID** | + | --------------- | --------------------------------- | --------------------- | + | 123 | Visa ending in 4242 | `PM1` | + | 123 | Mastercard ending in 1111 | `PM2` | + | 456 | Visa ending in 4242 | `PM3` | + | 123 | PayPal Account (`user@email.com`) | `PM4` | diff --git a/about-hyperswitch/payment-suite-1/payment-method-card/copy-of-payments.md b/about-hyperswitch/payment-suite-1/payment-method-card/copy-of-payments.md index 15b88936..fb84abc7 100644 --- a/about-hyperswitch/payment-suite-1/payment-method-card/copy-of-payments.md +++ b/about-hyperswitch/payment-suite-1/payment-method-card/copy-of-payments.md @@ -8,20 +8,18 @@ icon: money-bills-simple The Payment Method SDK provides APIs to securely capture and tokenize payment credentials, with support for vaulting payment details during the initial checkout flow. Upon successful vaulting, a persistent payment method ID is generated, which merchants can store and use to programmatically initiate subsequent transactions without re-collecting sensitive payment data. -#### **Key Features** +### **Key Features** * **Full Token Management** – Create, retrieve, update, and delete payment tokens directly from your server. * **PSP and Network Tokenization** – Generate both PSP tokens and network tokens through a single API. -* **Secure Storage** – Store tokens safely in Hyperswitch's Vault. +* **Secure Storage** – Store tokens safely in Juspay Hyperswitch's Vault. * **Reduced Frontend Complexity** – Shift tokenization processes to the backend, minimizing frontend dependencies. ### Understanding Payment and Vault Flow - -
-#### **Vaulting :** +### **Vaulting :** **1. Create Customer (Server-Side)** @@ -43,7 +41,7 @@ Hyperswitch receives the request, securely stores the raw card data in the Vault Hyperswitch returns the `payment_method_id` in the response. You can use this payment method ID for future payments for this customer without handling sensitive card data again. -#### **Payment :** +### **Payment :** To charge the customer you will have to call the [create and confirm](https://api-reference.hyperswitch.io/v2/payments/payments--create-and-confirm-intent) API and pass the `payment_method_id` along with `confirm` as `true` diff --git a/about-hyperswitch/payment-suite-1/payment-method-card/payment-methods-management.md b/about-hyperswitch/payment-suite-1/payment-method-card/payment-methods-management.md index 9598912a..76bab2a7 100644 --- a/about-hyperswitch/payment-suite-1/payment-method-card/payment-methods-management.md +++ b/about-hyperswitch/payment-suite-1/payment-method-card/payment-methods-management.md @@ -7,35 +7,35 @@ icon: bars-progress The Juspay Hyperswitch Payment Methods Management SDK provides a secure solution for merchants to handle and store payment information without the burden of PCI DSS compliance requirements. By leveraging Hyperswitch's Vault service, merchants can securely store customer payment methods (credit cards, digital wallets, etc.) while minimizing their exposure to sensitive payment data. -### **Key Features of Payment Method Management in Hyperswitch** +### **Key Features of Payment Method Management in Juspay Hyperswitch** Juspay Hyperswitch simplifies the complexities of payment method management, so you can offer a seamless, secure experience to your customers with minimal effort. -#### **Payment Method Creation**: +### **Payment Method Creation**: Easily allow your customers to save new payment methods during checkout, providing a convenient option for future transactions. -#### **Storing Payment Methods**: +### **Storing Payment Methods**: Juspay Hyperswitch securely stores customer payment details, enabling repeat purchases without requiring them to re-enter their information each time. -#### **Retrieving Payment Methods**: +### **Retrieving Payment Methods**: Customers can quickly access their saved payment methods, streamlining their checkout process and enhancing their overall experience. -#### **Deleting/Deactivating Payment Methods**: +### **Deleting/Deactivating Payment Methods**: Keep payment options up to date by allowing customers to manage outdated or inactive methods, ensuring a clean and efficient payment experience.

image displaying the payment method management UI.

-### Integration Guide : +### Integration Guide : -#### 1. Server-Side Setup +### 1. Server-Side Setup First, you'll need to set up your server to create payment method sessions, which establish secure connections between your frontend and the Hyperswitch Vault. -##### **Obtaining Your API Keys :** +#### **Obtaining Your API Keys :** * Get your API key from the [Hyperswitch dashboard](https://app.hyperswitch.io/developers?tabIndex=1) under Developers -> API Keys section. You'll need both your API key and profile ID for server and client integration. @@ -48,7 +48,7 @@ To generate your Vault API keys, follow these steps: **Note:** We are currently working on unifying authentication across our platforms. Soon, you will be able to use a single API key for both Payments and Vault APIs. -##### **Creating a Payment Methods Session Endpoint** +#### **Creating a Payment Methods Session Endpoint** Add an endpoint on your server that creates [payment methods sessions](https://api-reference.hyperswitch.io/v2/payment-method-session/payment-method-session--create-v1). This endpoint will return the necessary session information to your client application. @@ -57,62 +57,62 @@ Add an endpoint on your server that creates [payment methods sessions](https://a const app = express() app.post("/create-payment-method-session", async (req, res) => { - try { - // Create payment method session on Hyperswitch - const response = await fetch( - `${HYPERSWITCH_SERVER_URL}/v2/payment-method-sessions`, - { - method: "POST", - headers: { - "Content-Type": "application/json", - "x-profile-id": YOUR_PROFILE_ID, - Authorization: `api-key=${YOUR_API_KEY}`, - }, - body: JSON.stringify(req.body), - } - ); - const data = await response.json(); - - if (!response.ok) { - console.error("Hyperswitch API Error:", data); - return res.status(response.status).json({ - error: data.error || "Failed to create payment method session", - }); - } - // Return Payment method session ID and client secret to the frontend - res.json({ - id: data.id, - clientSecret: data.client_secret, - }); - } catch (error) { - console.error("Server Error:", error); - res.status(500).json({ - error: "Internal server error", - message: error.message, - }); + try { + // Create payment method session on Hyperswitch + const response = await fetch( + `${HYPERSWITCH_SERVER_URL}/v2/payment-method-sessions`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + "x-profile-id": YOUR_PROFILE_ID, + Authorization: `api-key=${YOUR_API_KEY}`, + }, + body: JSON.stringify(req.body), + } + ); + const data = await response.json(); + + if (!response.ok) { + console.error("Hyperswitch API Error:", data); + return res.status(response.status).json({ + error: data.error | | "Failed to create payment method session", + }); } + // Return Payment method session ID and client secret to the frontend + res.json({ + id: data.id, + clientSecret: data.client_secret, + }); + } catch (error) { + console.error("Server Error:", error); + res.status(500).json({ + error: "Internal server error", + message: error.message, + }); + } }); ``` > **Note**: Replace `YOUR_PROFILE_ID` and `YOUR_API_KEY` with your actual credentials from the Hyperswitch dashboard. -#### 2. Client-Side Integration +### 2. Client-Side Integration Once your server endpoint is set up, you'll need to integrate the Vault/Payment Methods Management SDK into your client application. -##### **2.1 Define the Payment Methods Management Form** +#### **2.1 Define the Payment Methods Management Form** Add one empty placeholder `div` to your page for the Payment Methods Management widget that you'll mount. ```html
-
- -
+
+ +
``` -##### **2.2 Fetch the Payment Method Session and Mount the Payment Methods Management Element** +#### **2.2 Fetch the Payment Method Session and Mount the Payment Methods Management Element** Make a request to the endpoint on your server to create a new payment method session. The `id` and `clientSecret` returned by your endpoint are used to initialize and display the customer's saved payment methods. Following this, create a `paymentMethodsManagementElements` element and mount it to the placeholder `div` in your form. This embeds an iframe with a dynamic interface that displays saved payment methods, allowing your customer to view, manage, and delete their payment methods. @@ -121,56 +121,56 @@ Make a request to the endpoint on your server to create a new payment method ses ```js // Fetches a payment method session and mounts the payment methods management element async function initialize() { - // Step 1: Create payment method session - const response = await fetch("/create-payment-method-session", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - customer_id: "CUSTOMER_ID", - }), + // Step 1: Create payment method session + const response = await fetch("/create-payment-method-session", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + customer_id: "CUSTOMER_ID", + }), + }); + const { id, clientSecret } = await response.json(); + + // Step 2: Initialize HyperLoader.js + var script = document.createElement("script"); + script.type = "text/javascript"; + script.src = "https://beta.hyperswitch.io/v2/HyperLoader.js"; + + let hyper; + script.onload = () => { + // Step 3: Initialize Hyper with your publishable key and profile ID + hyper = window.Hyper({ + publishableKey: "YOUR_PUBLISHABLE_KEY", + profileId: "YOUR_PROFILE_ID", }); - const { id, clientSecret } = await response.json(); - - // Step 2: Initialize HyperLoader.js - var script = document.createElement("script"); - script.type = "text/javascript"; - script.src = "https://beta.hyperswitch.io/v2/HyperLoader.js"; - - let hyper; - script.onload = () => { - // Step 3: Initialize Hyper with your publishable key and profile ID - hyper = window.Hyper({ - publishableKey: "YOUR_PUBLISHABLE_KEY", - profileId: "YOUR_PROFILE_ID", - }); - - // Step 4: Configure appearance - const appearance = { - theme: "default", - }; - - // Step 5: Create payment methods management elements - const paymentMethodsManagementElements = - hyper.paymentMethodsManagementElements({ - appearance, - pmSessionId: id, - pmClientSecret: clientSecret, - }); - - // Step 6: Create and mount the paymentMethodsManagement element - const paymentMethodsManagement = paymentMethodsManagementElements.create( - "paymentMethodsManagement" - ); - paymentMethodsManagement.mount("#payment-methods-management-elements"); + + // Step 4: Configure appearance + const appearance = { + theme: "default", }; - document.body.appendChild(script); + + // Step 5: Create payment methods management elements + const paymentMethodsManagementElements = + hyper.paymentMethodsManagementElements({ + appearance, + pmSessionId: id, + pmClientSecret: clientSecret, + }); + + // Step 6: Create and mount the paymentMethodsManagement element + const paymentMethodsManagement = paymentMethodsManagementElements.create( + "paymentMethodsManagement" + ); + paymentMethodsManagement.mount("#payment-methods-management-elements"); + }; + document.body.appendChild(script); } // Call initialize when page loads or when user clicks a button initialize(); ``` -##### **2.3 Complete tokenization and handle errors** +#### **2.3 Complete tokenization and handle errors** Call `confirmTokenization()`, passing the mounted Payment Methods Management widgets and a `return_url` to indicate where Hyper should redirect the user after any required authentication. Depending on the payment method, Hyper may redirect the customer to an authentication page. After authentication is completed, the customer is redirected back to the `return_url`. @@ -178,53 +178,53 @@ If there are any immediate errors (for example, invalid request parameters), Hyp ```js async function handleSubmit(e) { - setMessage(""); - e.preventDefault(); - - // Ensure Hyper is initialized - if (!hyper || !paymentMethodsManagementElements) { - return; - } + setMessage(""); + e.preventDefault(); + + // Ensure Hyper is initialized + if (!hyper | | !paymentMethodsManagementElements) { + return; + } + + setIsLoading(true); + + try { + const response = await hyper.confirmTokenization({ + paymentMethodsManagementElements, + confirmParams: { + // URL to redirect the user after authentication (if required) + return_url: "https://example.com/complete", + }, + redirect: "always", // if you wish to redirect always, otherwise it is defaulted to "if_required" + }); - setIsLoading(true); - - try { - const response = await hyper.confirmTokenization({ - paymentMethodsManagementElements, - confirmParams: { - // URL to redirect the user after authentication (if required) - return_url: "https://example.com/complete", - }, - redirect: "always", // if you wish to redirect always, otherwise it is defaulted to "if_required" - }); - - // Tokenization succeeded - if (response?.id) { - // You can use the returned payment method/session token here - handleTokenRetrieval(response); + // Tokenization succeeded + if (response?.id) { + // You can use the returned payment method/session token here + handleTokenRetrieval(response); + } else { + // Handle immediate errors returned by Hyper + const error = response?.error; + + if (error) { + if (error.type === "card_error" | | error.type === "validation_error") { + setMessage(error.message); } else { - // Handle immediate errors returned by Hyper - const error = response?.error; - - if (error) { - if (error.type === "card_error" || error.type === "validation_error") { - setMessage(error.message); - } else { - if (error.message) { - setMessage(error.message); - } else { - setMessage("An unexpected error occurred."); - } - } - } else { - setMessage("An unexpected error occurred."); - } + if (error.message) { + setMessage(error.message); + } else { + setMessage("An unexpected error occurred."); + } } - } catch (err) { - setMessage(err.message || "An unexpected error occurred."); - } finally { - setIsLoading(false); + } else { + setMessage("An unexpected error occurred."); + } } + } catch (err) { + setMessage(err.message | | "An unexpected error occurred."); + } finally { + setIsLoading(false); + } } ``` diff --git a/about-hyperswitch/payment-suite-1/payment-method-card/payments.md b/about-hyperswitch/payment-suite-1/payment-method-card/payments.md index 627023b8..834ded0f 100644 --- a/about-hyperswitch/payment-suite-1/payment-method-card/payments.md +++ b/about-hyperswitch/payment-suite-1/payment-method-card/payments.md @@ -1,7 +1,7 @@ --- description: >- - Implement guest checkout, first-time customer, and repeat purchase flows using - server-to-server APIs and the Payment Method SDK + Implement guest checkout, first-time customer, and repeat purchase flows using + server-to-server APIs and the Payment Method SDK icon: money-bills-simple --- @@ -9,7 +9,7 @@ icon: money-bills-simple The Payment Method SDK and `/payment-methods` API work in tandem with the `/payments` API to achieve any business objective as listed below. -#### Guest Checkout Flow (S2S) +### Guest Checkout Flow (S2S) 1. Collect card details and tokenise with HS [Create PM API](https://api-reference.hyperswitch.io/v2/payment-methods/payment-method--create-v1) to get a [PM ID](https://api-reference.hyperswitch.io/v2/payment-methods/payment-method--create-v1#response-id) (payment\_methd\_id) 2. Use the PM ID to authorize the [payment request](https://api-reference.hyperswitch.io/v1/payments/payments--confirm) during order confirmation @@ -21,7 +21,7 @@ Note - The PM ID in case of guest checkout is volatile in nature and has a defau For guest checkout flow the PM ID is NOT unique to Customer + Payment method combination. {% endhint %} -#### Customer Checkout Flow - First Time Payment (S2S) +### Customer Checkout Flow - First Time Payment (S2S) 1. Create a customer with HS using the [Create Customer API](https://api-reference.hyperswitch.io/v2/customers/customers--create-v1) 2. Use the customer\_id to tokenise the collected card details using Create PM API @@ -34,14 +34,14 @@ Note - The CVV storage is volatile in nature and can be stored for 1-hour be def For logged-in user checkout flow the PM ID is unique to Customer + Payment method combination. {% endhint %} -#### Customer Checkout Flow - Repeat Purchase (S2S) +### Customer Checkout Flow - Repeat Purchase (S2S) 1. Fetch the stored cards for the customer using [List Saved PMs API](https://api-reference.hyperswitch.io/v2/payment-methods/payment-method--list-customer-saved-payment-methods-v1) which returns the masked card details with corresponding PM ID 2. Update the PM ID of the user selected card along with CVV value collected from the user using the [Update PM API](https://api-reference.hyperswitch.io/v2/payment-methods/payment-method--update-v1) 3. Use the PM ID to authorize the [payment request](https://api-reference.hyperswitch.io/v1/payments/payments--confirm) during order confirmation 4. For extended sessions, where token expires before order completion update the PM again with the collected CVV and use this PM ID to complete the payment -#### Payment Method SDK Checkout - Guest, New Customer and Repeat Customer Flows +### Payment Method SDK Checkout - Guest, New Customer and Repeat Customer Flows 1. Create a PM session using the [Session Create API](https://api-reference.hyperswitch.io/v2/payment-method-session/payment-method-session--create-v1) to get a [client secret](https://api-reference.hyperswitch.io/v2/payment-method-session/payment-method-session--create-v1#response-client-secret) 2. For guest user, pass "storage\_type" as "volatile" and skip sending the Customer ID @@ -55,7 +55,7 @@ For logged-in user checkout flow the PM ID is unique to Customer + Payment metho Note - When using the HS SDK, the response always contains a temp token and you'll need to exchange it to get the PM ID via a S2S call. {% endhint %} -#### HS SDK Checkout for repeat customer - no CVV flow +### HS SDK Checkout for repeat customer - no CVV flow 1. Create a PM session using the [Session Create API](https://api-reference.hyperswitch.io/v2/payment-method-session/payment-method-session--create-v1) to get a [client secret](https://api-reference.hyperswitch.io/v2/payment-method-session/payment-method-session--create-v1#response-client-secret) 2. Initialize and mount the [Vault SDK](https://docs.hyperswitch.io/explore-hyperswitch/payments-modules/vault/vault-sdk-integration-1#id-2.2-fetch-the-payment-method-session-and-mount-the-payment-methods-management-element) using the client secret and session\_id diff --git a/about-hyperswitch/payment-suite-1/payment-method-card/proxy.md b/about-hyperswitch/payment-suite-1/payment-method-card/proxy.md index 692cf9d9..0f18301b 100644 --- a/about-hyperswitch/payment-suite-1/payment-method-card/proxy.md +++ b/about-hyperswitch/payment-suite-1/payment-method-card/proxy.md @@ -18,84 +18,84 @@ Key Highlights:
-#### **1. Create Payment Method Session (Server-Side)** +### **1. Create Payment Method Session (Server-Side)** The merchant server initiates the flow by calling the Juspay Hyperswitch [`Create-payment-method-session`](https://api-reference.hyperswitch.io/v2/payment-method-session/payment-method-session--create#payment-method-session-create) API with the `customer_id`. Hyperswitch responds with a `session_id` and `client_secret`, which are required to authenticate the client-side session. ```bash curl --request POST \ - --url https://sandbox.hyperswitch.io/v1/payment-method-sessions \ - --header 'Authorization: ' \ - --header 'Content-Type: application/json' \ - --header 'X-Profile-Id: ' \ - --data ' + *-url https://sandbox.hyperswitch.io/v1/payment-method-sessions \ + *-header 'Authorization: ' \ + *-header 'Content-Type: application/json' \ + *-header 'X-Profile-Id: ' \ + *-data ' { - "customer_id": "12345_cus_abcdefghijklmnopqrstuvwxyz" + "customer_id": "12345_cus_abcdefghijklmnopqrstuvwxyz" } ' ``` -#### **2. Initialize SDK (Client-Side)** +### **2. Initialize SDK (Client-Side)** The merchant client loads the `HyperLoader.js` script and initializes `window.Hyper` using the Publishable Key. Using the `session_id` and `client_secret`, the SDK creates a Payment Method Management (PMM) group and mounts the specific widget instance to the UI. ```js // Fetches a payment method session and mounts the payment methods management element async function initialize() { - // Step 1: Create payment method session - const response = await fetch("/create-payment-method-session", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - customer_id: "CUSTOMER_ID", - }), + // Step 1: Create payment method session + const response = await fetch("/create-payment-method-session", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + customer_id: "CUSTOMER_ID", + }), + }); + const { id, clientSecret } = await response.json(); + + // Step 2: Initialize HyperLoader.js + var script = document.createElement("script"); + script.type = "text/javascript"; + script.src = "https://beta.hyperswitch.io/v2/HyperLoader.js"; + + let hyper; + script.onload = () => { + // Step 3: Initialize Hyper with your publishable key and profile ID + hyper = window.Hyper({ + publishableKey: "YOUR_PUBLISHABLE_KEY", + profileId: "YOUR_PROFILE_ID", }); - const { id, clientSecret } = await response.json(); - - // Step 2: Initialize HyperLoader.js - var script = document.createElement("script"); - script.type = "text/javascript"; - script.src = "https://beta.hyperswitch.io/v2/HyperLoader.js"; - - let hyper; - script.onload = () => { - // Step 3: Initialize Hyper with your publishable key and profile ID - hyper = window.Hyper({ - publishableKey: "YOUR_PUBLISHABLE_KEY", - profileId: "YOUR_PROFILE_ID", - }); - - // Step 4: Configure appearance - const appearance = { - theme: "default", - }; - - // Step 5: Create payment methods management elements - const paymentMethodsManagementElements = - hyper.paymentMethodsManagementElements({ - appearance, - pmSessionId: id, - pmClientSecret: clientSecret, - }); - - // Step 6: Create and mount the paymentMethodsManagement element - const paymentMethodsManagement = paymentMethodsManagementElements.create( - "paymentMethodsManagement" - ); - paymentMethodsManagement.mount("#payment-methods-management-elements"); + + // Step 4: Configure appearance + const appearance = { + theme: "default", }; - document.body.appendChild(script); + + // Step 5: Create payment methods management elements + const paymentMethodsManagementElements = + hyper.paymentMethodsManagementElements({ + appearance, + pmSessionId: id, + pmClientSecret: clientSecret, + }); + + // Step 6: Create and mount the paymentMethodsManagement element + const paymentMethodsManagement = paymentMethodsManagementElements.create( + "paymentMethodsManagement" + ); + paymentMethodsManagement.mount("#payment-methods-management-elements"); + }; + document.body.appendChild(script); } // Call initialize when page loads or when user clicks a button initialize(); ``` -#### **3. Collect and Vault Card (Client-Side)** +### **3. Collect and Vault Card (Client-Side)** -The customer enters their card details directly into the SDK-managed widget. Upon confirmation, the SDK calls the /`Confirm a payment method session` API. Hyperswitch securely receives the data, stores it in the Vault (retaining the CVV temporarily for the transaction TTL), and returns a success response with the `session_id` to the client. +The customer enters their card details directly into the SDK-managed widget. Upon confirmation, the SDK calls the /`Confirm a payment method session` API. Juspay Hyperswitch securely receives the data, stores it in the Vault (retaining the CVV temporarily for the transaction TTL), and returns a success response with the `session_id` to the client. -#### **4. Retrieve Payment Method ID (Server-Side)** +### **4. Retrieve Payment Method ID (Server-Side)** The merchant server calls the "List Payment Methods" API using the `session_id`. Hyperswitch returns a list of payment methods associated with the customer, from which the merchant server selects the appropriate `PM_ID` (Payment Method ID) to use for the transaction. @@ -111,144 +111,144 @@ The merchant server initiates the payment by sending a request to the [Hyperswit 4. Retrieve Payment Method ID (Server-Side) The merchant server calls the "List Payment Methods" API using the `session_id`. Hyperswitch returns a list of payment methods associated with the customer, from which the merchant server selects the appropriate `PM_ID` (Payment Method ID) to use for the transaction. 5. Execute Proxy Payment (Server-Side) The merchant server initiates the payment by sending a request to the -#### Proxy Payment Request +### Proxy Payment Request Include the following details: 1. Include the Hyperswitch Proxy payments related fields in the headers: - 1. URL: Proxy endpoint (https://sandbox.hyperswitch.io/proxy) - 2. API Key: Your API key for the merchant\_id under which the vault service was created on Hyperswitch dashboard - 3. Profile\_id: Your profile\_id for the merchant\_id under which the vault service was created on Hyperswitch dashboard + 1. URL: Proxy endpoint (https://sandbox.hyperswitch.io/proxy) + 2. API Key: Your API key for the merchant\_id under which the vault service was created on Hyperswitch dashboard + 3. Profile\_id: Your profile\_id for the merchant\_id under which the vault service was created on Hyperswitch dashboard 2. Include the following details in the body: - 1. `request_body`: Include the request body of the PSP payment request - 2. `destination_url`, `method`, `headers`: Pass your PSP url as destination url, PSP endpoint method and headers under the respective fields - 3. Vault tokens: - 1. `token_type` : Choose payment\_method\_id or tokenization\_id - 2. `token:` Plug the payment\_method\_id or tokenization\_id that you would have received when tokenizing card data or PII data at Hyperswitch vault - 4. Placeholders for token data: In the `request_body`, Plug in the dynamic placeholders`{{$card_number}}`, `{{$card_exp_month}}`,`{{$card_exp_year}}` against the PSP request fields where you want the actual values of the tokens from the Vault to be substituted + 1. `request_body`: Include the request body of the PSP payment request + 2. `destination_url`, `method`, `headers`: Pass your PSP url as destination url, PSP endpoint method and headers under the respective fields + 3. Vault tokens: + 1. `token_type` : Choose payment\_method\_id or tokenization\_id + 2. `token:` Plug the payment\_method\_id or tokenization\_id that you would have received when tokenizing card data or PII data at Hyperswitch vault + 4. Placeholders for token data: In the `request_body`, Plug in the dynamic placeholders`{{$card_number}}`, `{{$card_exp_month}}`,`{{$card_exp_year}}` against the PSP request fields where you want the actual values of the tokens from the Vault to be substituted **Sample Proxy payment request (Checkout.com)**
curl --location 'https://sandbox.hyperswitch.io/proxy' \
---header 'Content-Type: application/json' \
---header 'Accept: application/json' \
---header 'X-Profile-Id: pro_p3ifmp0HzuC0Bp1KhMnK' \
---header 'Authorization: api-key=dev_bBPAkg0KX9Wn4Zewavrd0W76LsgDpGSey8iMARauXDWqzX4zwk4D03d0851Tx0EV' \
---header 'api-key: dev_30hnPzj6Kk6UAETk9hjWdaIxdVVuTk3mjmz2kxh6CIhq1K1DJ4nTZdpGt986L53G' \
---data '{
-    "request_body": {
-        "source": {
-            "type": "card",
-            "number": "{{$card_number}}",
-            "expiry_month": "{{$card_exp_month}}",
-            "expiry_year": "{{$card_exp_year}}",
-            "billing_address": {
-                "address_line1": "123 High St.",
-                "address_line2": "Flat 456",
-                "city": "London",
-                "state": "GB",
-                "zip": "SW1A 1AA",
-                "country": "GB"
-            }
-        },
-        "processing_channel_id": "pc_jx5lvimg..",
-        "amount": 6540,
-        "currency": "USD",
-        "payment_type": "Regular",
-        "reference": "ORD-5023-4E89",
-        "description": "Set of 3 masks",
-        "capture": true,
-        "capture_on": "2019-09-10T10:11:12Z",
-    },
-    "destination_url": "https://api.sandbox.checkout.com/payments",
-    "headers": {
-        "Content-Type": "application/json",
-        "Authorization": "Bearer sk_sbox_3uu..."
+*-header 'Content-Type: application/json' \
+*-header 'Accept: application/json' \
+*-header 'X-Profile-Id: pro_p3ifmp0HzuC0Bp1KhMnK' \
+*-header 'Authorization: api-key=dev_bBPAkg0KX9Wn4Zewavrd0W76LsgDpGSey8iMARauXDWqzX4zwk4D03d0851Tx0EV' \
+*-header 'api-key: dev_30hnPzj6Kk6UAETk9hjWdaIxdVVuTk3mjmz2kxh6CIhq1K1DJ4nTZdpGt986L53G' \
+*-data '{
+  "request_body": {
+    "source": {
+      "type": "card",
+      "number": "{{$card_number}}",
+      "expiry_month": "{{$card_exp_month}}",
+      "expiry_year": "{{$card_exp_year}}",
+      "billing_address": {
+        "address_line1": "123 High St.",
+        "address_line2": "Flat 456",
+        "city": "London",
+        "state": "GB",
+        "zip": "SW1A 1AA",
+        "country": "GB"
+      }
     },
-    "token": "12345_pm_0196f252baa1736190bf0fc81b9651ea",
-    "token_type": "payment_method_id",
-    "method": "POST"
+    "processing_channel_id": "pc_jx5lvimg..",
+    "amount": 6540,
+    "currency": "USD",
+    "payment_type": "Regular",
+    "reference": "ORD-5023-4E89",
+    "description": "Set of 3 masks",
+    "capture": true,
+    "capture_on": "2019-09-10T10:11:12Z",
+  },
+  "destination_url": "https://api.sandbox.checkout.com/payments",
+  "headers": {
+    "Content-Type": "application/json",
+    "Authorization": "Bearer sk_sbox_3uu..."
+  },
+  "token": "12345_pm_0196f252baa1736190bf0fc81b9651ea",
+  "token_type": "payment_method_id",
+  "method": "POST"
 
 }'
 
-#### Sample Response +### Sample Response ```bash { - "response": { - "id": "pay_7f6x6vki25futmy54uot5c3ama", - "action_id": "act_egzzg6mojknungbe3367fvsiaq", - "amount": 6540, - "currency": "USD", - "approved": true, - "status": "Authorized", - "auth_code": "690380", - "response_code": "10000", - "response_summary": "Approved", - "risk": { - "flagged": false, - "score": 0.0 - }, - "source": { - "id": "src_jliqxofnudseteb5dl4hl7frh4", - "type": "card", - "expiry_month": 12, - "expiry_year": 2026, - "scheme": "Visa", - "last4": "0093", - "fingerprint": "EEF6D525CC7C861D6AB1CEB56F9285839AE850E79BA43D7D8C06790B7A0ABD7C", - "bin": "476136", - "card_type": "CREDIT", - "card_category": "CONSUMER", - "issuer": "YES BANK, LTD.", - "issuer_country": "IN", - "product_id": "F", - "product_type": "Visa Classic", - "avs_check": "G", - "payment_account_reference": "V001711066651680047", - "regulated_indicator": false - }, - "processed_on": "2025-05-21T10:10:42.7625936Z", - "reference": "ORD-5023-4E89", - "scheme_id": "509352732623965", - "processing": { - "acquirer_transaction_id": "096359746174895421192", - "retrieval_reference_number": "404030119279", - "merchant_category_code": "5815", - "scheme_merchant_id": "75155", - "scheme": "VISA", - "aft": false, - "pan_type_processed": "fpan", - "cko_network_token_available": false, - "provision_network_token": false - }, - "expires_on": "2025-06-20T10:10:42.7625936Z", - "_links": { - "self": { - "href": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama" - }, - "actions": { - "href": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama/actions" - }, - "capture": { - "href": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama/captures" - }, - "voids": { - "href": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama/voids" - } - } + "response": { + "id": "pay_7f6x6vki25futmy54uot5c3ama", + "action_id": "act_egzzg6mojknungbe3367fvsiaq", + "amount": 6540, + "currency": "USD", + "approved": true, + "status": "Authorized", + "auth_code": "690380", + "response_code": "10000", + "response_summary": "Approved", + "risk": { + "flagged": false, + "score": 0.0 + }, + "source": { + "id": "src_jliqxofnudseteb5dl4hl7frh4", + "type": "card", + "expiry_month": 12, + "expiry_year": 2026, + "scheme": "Visa", + "last4": "0093", + "fingerprint": "EEF6D525CC7C861D6AB1CEB56F9285839AE850E79BA43D7D8C06790B7A0ABD7C", + "bin": "476136", + "card_type": "CREDIT", + "card_category": "CONSUMER", + "issuer": "YES BANK, LTD.", + "issuer_country": "IN", + "product_id": "F", + "product_type": "Visa Classic", + "avs_check": "G", + "payment_account_reference": "V001711066651680047", + "regulated_indicator": false + }, + "processed_on": "2025-05-21T10:10:42.7625936Z", + "reference": "ORD-5023-4E89", + "scheme_id": "509352732623965", + "processing": { + "acquirer_transaction_id": "096359746174895421192", + "retrieval_reference_number": "404030119279", + "merchant_category_code": "5815", + "scheme_merchant_id": "75155", + "scheme": "VISA", + "aft": false, + "pan_type_processed": "fpan", + "cko_network_token_available": false, + "provision_network_token": false }, - "status_code": 201, - "response_headers": { - "date": "Wed, 21 May 2025 10:10:42 GMT", - "cko-version": "1.1049.0+54597dfad", - "strict-transport-security": "max-age=16000000; includeSubDomains; preload;", - "location": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama", - "content-length": "1883", - "content-type": "application/json; charset=utf-8", - "connection": "keep-alive", - "cko-request-id": "61354917-3541-44fc-8ec7-98dd385aa0b4" + "expires_on": "2025-06-20T10:10:42.7625936Z", + "_links": { + "self": { + "href": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama" + }, + "actions": { + "href": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama/actions" + }, + "capture": { + "href": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama/captures" + }, + "voids": { + "href": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama/voids" + } } + }, + "status_code": 201, + "response_headers": { + "date": "Wed, 21 May 2025 10:10:42 GMT", + "cko-version": "1.1049.0+54597dfad", + "strict-transport-security": "max-age=16000000; includeSubDomains; preload;", + "location": "https://api.sandbox.checkout.com/payments/pay_7f6x6vki25futmy54uot5c3ama", + "content-length": "1883", + "content-type": "application/json; charset=utf-8", + "connection": "keep-alive", + "cko-request-id": "61354917-3541-44fc-8ec7-98dd385aa0b4" + } } ``` diff --git a/about-hyperswitch/payment-suite-1/payment-method-management-sdk.md b/about-hyperswitch/payment-suite-1/payment-method-management-sdk.md index d2ef19d8..cbc283aa 100644 --- a/about-hyperswitch/payment-suite-1/payment-method-management-sdk.md +++ b/about-hyperswitch/payment-suite-1/payment-method-management-sdk.md @@ -5,9 +5,9 @@ hidden: true # Payment Method Management SDK -The Hyperswitch Payment Methods Management SDK provides a secure solution for merchants to handle and store payment information without the burden of PCI DSS compliance requirements. By leveraging Hyperswitch's Vault service, merchants can securely store customer payment methods (credit cards, digital wallets, etc.) while minimizing their exposure to sensitive payment data. +The Juspay Hyperswitch Payment Methods Management SDK provides a secure solution for merchants to handle and store payment information without the burden of PCI DSS compliance requirements. By leveraging Hyperswitch's Vault service, merchants can securely store customer payment methods (credit cards, digital wallets, etc.) while minimizing their exposure to sensitive payment data. -#### Why Integrate the Management SDK? +### Why Integrate the Management SDK? Hyperswitch simplifies the complexities of payment method management, so you can offer a seamless, secure experience to your customers with minimal effort. @@ -16,12 +16,8 @@ Hyperswitch simplifies the complexities of payment method management, so you can 3. **Retrieving Payment Methods**: Customers can quickly access their saved payment methods, streamlining their checkout process and enhancing their overall experience. 4. **Deleting/Deactivating Payment Methods**: Keep payment options up to date by allowing customers to manage outdated or inactive methods, ensuring a clean and efficient payment experience. - -
- - **Integration Documentation :** * [PMM SDK integration Guide](https://docs.hyperswitch.io/~/revisions/0suhZ1q0uwhOXBI31wWf/explore-hyperswitch/payments-modules/vault/payment-methods-management-sdk) diff --git a/about-hyperswitch/payment-suite-1/payment-with-vault-flow/README.md b/about-hyperswitch/payment-suite-1/payment-with-vault-flow/README.md index dc74778f..fb5d055e 100644 --- a/about-hyperswitch/payment-suite-1/payment-with-vault-flow/README.md +++ b/about-hyperswitch/payment-suite-1/payment-with-vault-flow/README.md @@ -5,33 +5,33 @@ hidden: true # Payment with Vault Flow -In the Payment with Vault flow setup, Hyperswitch acts as the central intelligence layer. You interact with a single unified API, and Hyperswitch manages the entire payment lifecycle across multiple processors. +In the Payment with Vault flow setup, Juspay Hyperswitch acts as the central intelligence layer. You interact with a single unified API, and Hyperswitch manages the entire payment lifecycle across multiple processors. -#### How it Works +### How it Works 1. **Unified Request:** Your backend sends a generic payment request to the Hyperswitch API. 2. **Smart Routing:** The Hyperswitch Orchestrator evaluates your configured business rules (e.g., routing by volume, cost, or region). 3. **Execution:** Hyperswitch transforms the request into the specific format required by the target Connector (Stripe, Adyen, Braintree, etc.). 4. **State Management:** Hyperswitch maintains the payment state machine, handling webhooks, retries, and status updates automatically. -#### Technical Advantages +### Technical Advantages * **Abstracted Complexity:** You do not need to write or maintain processor-specific code. * **Dynamic Routing:** Switch traffic between processors in real-time via the Hyperswitch dashboard or during payment initiation API calls. * **Unified Reporting:** Transaction data across all processors is normalized into a single schema. -* Every transaction is processed via a PSP and based on the API calls you can have - zero dollar validation, multi-stage manual capture, or sophisticated recurring logic payment flows. +* Every transaction is processed via a PSP and based on the API calls you can have - zero dollar validation, multi-stage manual capture, or sophisticated recurring logic payment flows. -#### Choose the Right Setup +### Choose the Right Setup Depending on your UI strategy and data sovereignty requirements, the Payment with Vault Flow offers multiple implementation patterns. Each option is designed to help you balance user experience, engineering complexity, and PCI compliance scope in a way that best fits your business. The four primary patterns are: * [**Hyperswitch SDK + Hyperswitch Vault** ](https://docs.hyperswitch.io/~/revisions/gkH4cp2rB1DvMiW6aktj/about-hyperswitch/payment-suite-1/orchestrator-model/hyperswitch-sdk-+-hyperswitch-vault-setup) — _Unified Flow_:\ - The quickest path to launch, offering a fully integrated experience with zero PCI scope. + The quickest path to launch, offering a fully integrated experience with zero PCI scope. * [**Merchant SDK + Hyperswitch Vault**](https://docs.hyperswitch.io/~/revisions/Rp0vynFYJnlasuYRM3en/about-hyperswitch/payment-suite-1/orchestrator-model/merchant-sdk-+-hyperswitch-vault-setup) — _Headless Flow_:\ - Enables a fully custom UI while retaining secure vaulting, giving you greater control with added implementation effort. + Enables a fully custom UI while retaining secure vaulting, giving you greater control with added implementation effort. * [**Hyperswitch SDK + External Vault**](https://docs.hyperswitch.io/~/revisions/Rp0vynFYJnlasuYRM3en/about-hyperswitch/payment-suite-1/orchestrator-model/hyperswitch-sdk-+-external-vault-setup) — _Hybrid Flow_:\ - Combines Hyperswitch-managed UI with third-party data storage for teams with specific vaulting requirements. + Combines Hyperswitch-managed UI with third-party data storage for teams with specific vaulting requirements. * [**External SDK + External Vault**](https://docs.hyperswitch.io/~/revisions/Rp0vynFYJnlasuYRM3en/about-hyperswitch/payment-suite-1/orchestrator-model/external-sdk-and-external-vault-setup) — _External Vault Flow_:\ - Provides maximum decoupling and flexibility, ideal for advanced setups that demand full control across the stack. + Provides maximum decoupling and flexibility, ideal for advanced setups that demand full control across the stack. diff --git a/about-hyperswitch/payment-suite-1/payment-with-vault-flow/hyperswitch-sdk-+-hyperswitch-vault-setup.md b/about-hyperswitch/payment-suite-1/payment-with-vault-flow/hyperswitch-sdk-+-hyperswitch-vault-setup.md index 4cb9a970..275ee8e6 100644 --- a/about-hyperswitch/payment-suite-1/payment-with-vault-flow/hyperswitch-sdk-+-hyperswitch-vault-setup.md +++ b/about-hyperswitch/payment-suite-1/payment-with-vault-flow/hyperswitch-sdk-+-hyperswitch-vault-setup.md @@ -1,7 +1,7 @@ --- description: >- - Best for merchants seeking a pre-built, optimized payment UI backed by the - full Hyperswitch stack for secure data storage and routing. + Best for merchants seeking a pre-built, optimized payment UI backed by the + full Juspay Hyperswitch stack for secure data storage and routing. --- # Hyperswitch SDK + Hyperswitch Vault Setup @@ -10,14 +10,12 @@ In this approach, the Hyperswitch SDK is used on the frontend to capture card de The merchant uses the Hyperswitch Dashboard to configure connectors, routing rules, and orchestration logic. All payment requests are initiated using vault tokens, and raw card data never reaches merchant systems. Since card details are handled entirely by Hyperswitch, merchants are not required to be PCI DSS compliant for card data handling. -#### **Understanding Payment and Vault flow** +### **Understanding Payment and Vault flow** -#### **Vaulting :** +### **Vaulting :**
- - **1. Create Payment (Server-Side)**\ The merchant server creates a payment by calling the Hyperswitch [`payments/create`](https://api-reference.hyperswitch.io/v1/payments/payments--create) API with transaction details such as amount and currency. Hyperswitch responds with a `payment_id` and `client_secret`, which are required for client-side processing. @@ -33,9 +31,7 @@ The SDK submits a `payments/confirm` request to Hyperswitch. Hyperswitch authori **5. Return Status**\ The final payment and vaulting status is returned to the SDK, which redirects the customer to the merchant's configured `return_url`. - - -#### **Payment Using Stored Card :** +### **Payment Using Stored Card :**
@@ -54,12 +50,7 @@ The SDK sends a `payments/confirm` request with the selected `payment_method_id` **5. Return Status**\ The processor returns the authorization result to Hyperswitch, which forwards the final status to the SDK. The customer is redirected to the merchant's `return_url` with the payment outcome. - - - - - * **Integration Documentation :** - * **Unified Checkout :** [Integration guide](https://docs.hyperswitch.io/explore-hyperswitch/merchant-controls/integration-guide) - * [Create Payment API](https://api-reference.hyperswitch.io/v1/payments/payments--create) - * [Unified Checkout: Saving Payment Methods](https://docs.hyperswitch.io/explore-hyperswitch/payment-orchestration/quickstart/tokenization-and-saved-cards/save-a-payment-method) + * **Unified Checkout :** [Integration guide](https://docs.hyperswitch.io/explore-hyperswitch/merchant-controls/integration-guide) + * [Create Payment API](https://api-reference.hyperswitch.io/v1/payments/payments--create) + * [Unified Checkout: Saving Payment Methods](https://docs.hyperswitch.io/explore-hyperswitch/payment-orchestration/quickstart/tokenization-and-saved-cards/save-a-payment-method) diff --git a/about-hyperswitch/payment-suite-1/payment-with-vault-flow/merchant-sdk-+-hyperswitch-vault-setup.md b/about-hyperswitch/payment-suite-1/payment-with-vault-flow/merchant-sdk-+-hyperswitch-vault-setup.md index 0e0403e9..d853af14 100644 --- a/about-hyperswitch/payment-suite-1/payment-with-vault-flow/merchant-sdk-+-hyperswitch-vault-setup.md +++ b/about-hyperswitch/payment-suite-1/payment-with-vault-flow/merchant-sdk-+-hyperswitch-vault-setup.md @@ -1,7 +1,7 @@ --- description: >- - Best for PCI compliant merchants requiring full control over UI rendering - while leveraging Hyperswitch Vault for secure storage and payment routing. + Best for PCI compliant merchants requiring full control over UI rendering + while leveraging Juspay Hyperswitch Vault for secure storage and payment routing. --- # Merchant SDK + Hyperswitch Vault Setup @@ -10,14 +10,12 @@ In this approach, the merchant uses their own frontend SDK to capture card detai Once tokenized, Hyperswitch backend handles orchestration, routing, retries, and connector execution using vault tokens. All orchestration configuration is managed through the Hyperswitch Dashboard. -#### Understanding Payment and Vault Workflow +### Understanding Payment and Vault Workflow -#### **Vaulting :** +### **Vaulting :**
- - **1. Create Payment (Server-Side)** The merchant server calls the Hyperswitch `p`[`ayments/create`](https://api-reference.hyperswitch.io/v1/payments/payments--create) API with details such as `customer_id`, `amount`, `currency`, and `api_key`. Hyperswitch responds with a `payment_id` and other metadata required to proceed. @@ -46,9 +44,7 @@ After successful authorization, Hyperswitch securely stores the card data in the Hyperswitch sends the final payment response, including transaction status and the vaulted `payment_method_id`, back to the merchant server. - - -#### **Payment Using Stored Card :** +### **Payment Using Stored Card :**
@@ -80,8 +76,6 @@ The Hyperswitch Connector handles the synchronous handshake with the external pr The Hyperswitch Server sends the final transaction state (e.g., `succeeded`, `failed`) to Merchant Server. This allows the backend to update the order status while the frontend notifies the user of the successful payment. - - **API Reference :** 1. [Payment Create API](https://api-reference.hyperswitch.io/v1/payments/payments--create) diff --git a/about-hyperswitch/payment-suite-1/payments-cards/copy-of-subscriptions.md b/about-hyperswitch/payment-suite-1/payments-cards/copy-of-subscriptions.md index cc468645..fdd4bad3 100644 --- a/about-hyperswitch/payment-suite-1/payments-cards/copy-of-subscriptions.md +++ b/about-hyperswitch/payment-suite-1/payments-cards/copy-of-subscriptions.md @@ -8,7 +8,7 @@ icon: arrows-rotate-reverse Businesses that run on subscription model powered by providers viz. Chargebee, Recurly, Stripe Billing etc. can now augment it with payments orchestration by decoupling the payments from the subscription provider and using them purely for subscription ledger and scheduling, while owning 100% of the card vaulting, payment attempts, and retry logic (owned in-house, or via an ensemble of specialized payment-focused orchestrator and other focused third parties, modularized to work with each other) -#### Benefits +### Benefits 1. Greater control over payments with direct integrations and commercials with a range of Acquirers and Payment Processors 2. Improved reliability with a multi-PSP setup @@ -16,9 +16,9 @@ Businesses that run on subscription model powered by providers viz. Chargebee, R 4. Greater coverage of PMs, APMs and features offered by the PSPs 5. Centralised tokenisation of payment methods for PSP agnostic payments -#### How does it work? +### How does it work? -1. Integrate your subscription provider as a billing processor on Hyperswitch +1. Integrate your subscription provider as a billing processor on Juspay Hyperswitch 2. Create and maintain plans on the subscription provider's dashboard 3. During the checkout process use Hyperswitch for Payments 4. Hyperswitch completes the payment, securely tokenises and stores the card @@ -27,21 +27,21 @@ Businesses that run on subscription model powered by providers viz. Chargebee, R 7. Subsequent billing cycles are handled independently by Hyperswitch through MIT payments 8. Failed MIT payments can be smartly retried by Hyperswitch ([read more](../../../explore-hyperswitch/payments-modules/revenue-recovery.md)) or by the solution provider of your choice. -#### Flow Diagram +### Flow Diagram -##### Initial Subscription create flow (with CIT Payment) +#### Initial Subscription create flow (with CIT Payment)
-##### MIT payment flow in subsequent billing cycle +#### MIT payment flow in subsequent billing cycle
-#### Integration Guide +### Integration Guide -##### 1. For non-PCI compliant merchants who wants to use Hyperswitch Payments SDK +#### 1. For non-PCI compliant merchants who wants to use Hyperswitch Payments SDK -##### Initial Subscription create flow (with CIT Payment) +#### Initial Subscription create flow (with CIT Payment) {% stepper %} {% step %} @@ -52,34 +52,34 @@ _Note: Dashboard support for this configuration will be available soon_ {% code overflow="wrap" fullWidth="false" %} ``` curl --location 'http:///account//connectors' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data '{ - "connector_type": "billing_processor", - "connector_name": "chargebee", - "connector_account_details": { - "auth_type": "HeaderKey", - "api_key": "", - "site": "" - }, - "business_country": "US", - "business_label": "default", - "connector_webhook_details": { - "merchant_secret": "hyperswitch", - "additional_secret": "hyperswitch" - }, - "metadata": { - "site": "test" - } +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data '{ + "connector_type": "billing_processor", + "connector_name": "chargebee", + "connector_account_details": { + "auth_type": "HeaderKey", + "api_key": "", + "site": "" + }, + "business_country": "US", + "business_label": "default", + "connector_webhook_details": { + "merchant_secret": "hyperswitch", + "additional_secret": "hyperswitch" + }, + "metadata": { + "site": "test" + } }' SET AS BILLING CONNECTOR curl --location 'http:///account//business_profile/' \ ---data '{ - "billing_processor_id": "" +*-header 'Content-Type: application/json' \ +*-header 'api-key: ' \ +*-data '{ + "billing_processor_id": "" }' ``` {% endcode %} @@ -94,27 +94,27 @@ Fetch the plan details (to be setup prior on subscription provider) ``` curl --location 'http:///subscriptions/plans' \ ---header 'Content-Type: application/json' \ ---header 'api-key: ' +*-header 'Content-Type: application/json' \ +*-header 'api-key: ' Response: [ - { - "plan_id": "cbdemo_enterprise-suite", - "name": "Enterprise Suite", - "description": "High-end customer support suite with enterprise-grade solutions." + { + "plan_id": "cbdemo_enterprise-suite", + "name": "Enterprise Suite", + "description": "High-end customer support suite with enterprise-grade solutions." "price_id": [ - { - "id": "cbdemo_enterprise-suite-INR-Daily", - "name": "Enterprise Suite INR Daily", - "pricing_model": "flat_fee", - "price": 10000, - "period": 1, - "currency_code": "INR", - "period_unit": "day", - "free_quantity": 0, - }] - } + { + "id": "cbdemo_enterprise-suite-INR-Daily", + "name": "Enterprise Suite INR Daily", + "pricing_model": "flat_fee", + "price": 10000, + "period": 1, + "currency_code": "INR", + "period_unit": "day", + "free_quantity": 0, + }] + } ] ``` @@ -129,19 +129,19 @@ Once the user selects a particular Plan, create a customer on Hyperswitch ([API ``` curl --location '/subscriptions/create' \ ---header 'Content-Type: application/json' \ ---header 'X-Profile-Id: ' \ ---header 'api-key: ' \ ---data '{ - "customer_id": "cus_uBtUJLSVSICr8ctmoL8i", - "amount": 14100, - "currency": "USD", - "payment_details": { - "authentication_type": "no_three_ds", - "setup_future_usage": "off_session", - "capture_method": "automatic", - "return_url": "https://google.com" - } +*-header 'Content-Type: application/json' \ +*-header 'X-Profile-Id: ' \ +*-header 'api-key: ' \ +*-data '{ + "customer_id": "cus_uBtUJLSVSICr8ctmoL8i", + "amount": 14100, + "currency": "USD", + "payment_details": { + "authentication_type": "no_three_ds", + "setup_future_usage": "off_session", + "capture_method": "automatic", + "return_url": "https://google.com" + } }' ``` {% endstep %} @@ -154,7 +154,7 @@ When setting up subscription there are two distinct implementation flows. The correct flow depends on whether you intend to charge the customer immediately or simply validate their details for later use. -#### 1. The Setup with Charge Flow +### 1. The Setup with Charge Flow **Use Case:** Use this when you need to collect a payment immediately (e.g., the first month of a subscription or a setup fee) while simultaneously saving the card details for future automatic charges. @@ -163,14 +163,10 @@ The correct flow depends on whether you intend to charge the customer immediatel * `setup_future_usage: "off_session"` * `amount > 0` - - -#### 2. The Zero Dollar Authorization Flow +### 2. The Zero Dollar Authorization Flow **Use Case:** Use this for free trials, pay-later models, or delayed billing. This flow validates the payment method details without charging the customer's card. - - **Configuration Parameters :** * Pass below parameters while calling payments API for [Zero Dollar Auth ](https://docs.hyperswitch.io/explore-hyperswitch/payment-orchestration/quickstart/tokenization-and-saved-cards/zero-amount-authorization-1) @@ -189,9 +185,7 @@ Sync with the subscription status for disbursement of services and future billin {% endstep %} {% endstepper %} - - -#### 2. For PCI Compliant merchants handling the entire checkout experience +### 2. For PCI Compliant merchants handling the entire checkout experience {% stepper %} {% step %} @@ -210,7 +204,7 @@ When setting up subscription there are two distinct implementation flows. The correct flow depends on whether you intend to charge the customer immediately or simply validate their details for later use. -#### 1. The Setup with Charge Flow +### 1. The Setup with Charge Flow **Use Case:** Use this when you need to collect a payment immediately (e.g., the first month of a subscription or a setup fee) while simultaneously saving the card details for future automatic charges. @@ -219,14 +213,10 @@ The correct flow depends on whether you intend to charge the customer immediatel * `setup_future_usage: "off_session"` * `amount > 0` - - -#### 2. The Zero Dollar Authorization Flow +### 2. The Zero Dollar Authorization Flow **Use Case:** Use this for free trials, pay-later models, or delayed billing. This flow validates the payment method details without charging the customer's card. - - **Configuration Parameters :** * Pass below parameters while calling payments API for [Zero Dollar Auth ](https://docs.hyperswitch.io/explore-hyperswitch/payment-orchestration/quickstart/tokenization-and-saved-cards/zero-amount-authorization-1) @@ -237,52 +227,52 @@ The correct flow depends on whether you intend to charge the customer immediatel ``` curl --location 'http:///subscriptions/' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'X-Profile-Id: pro_2WzEeiNyj8fSCObXqo36' \ ---header 'api-key: dev_Ske75Nx2J7qtHsP8cc7pFx5k4dccYBedM6UAExaLOdHCkji3uVWSqfmZ0Qz0Tnyj' \ ---data '{ - "item_price_id": "cbdemo_enterprise-suite-INR-Daily", - "customer_id": "cus_NdHhw4wwWyYXSldO9oYE", - "billing_address": { - "address": { - "line1": "1467", - "line2": "Harrison Street", - "line3": "Harrison Street", - "city": "San Fransico", - "state": "California", - "zip": "94122", - "country": "US", - "first_name": "joseph", - "last_name": "Doe" - }, - "phone": { - "number": "8056594427", - "country_code": "+91" - } +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'X-Profile-Id: pro_2WzEeiNyj8fSCObXqo36' \ +*-header 'api-key: dev_Ske75Nx2J7qtHsP8cc7pFx5k4dccYBedM6UAExaLOdHCkji3uVWSqfmZ0Qz0Tnyj' \ +*-data '{ + "item_price_id": "cbdemo_enterprise-suite-INR-Daily", + "customer_id": "cus_NdHhw4wwWyYXSldO9oYE", + "billing_address": { + "address": { + "line1": "1467", + "line2": "Harrison Street", + "line3": "Harrison Street", + "city": "San Fransico", + "state": "California", + "zip": "94122", + "country": "US", + "first_name": "joseph", + "last_name": "Doe" + }, + "phone": { + "number": "8056594427", + "country_code": "+91" + } + }, + "payment_details": { + "payment_method": "card", + "payment_method_type": "credit", + "payment_method_data": { + "card": { + "card_number": "4242424242424242", + "card_exp_month": "10", + "card_exp_year": "25", + "card_holder_name": "joseph Doe", + "card_cvc": "123" + } }, - "payment_details": { - "payment_method": "card", - "payment_method_type": "credit", - "payment_method_data": { - "card": { - "card_number": "4242424242424242", - "card_exp_month": "10", - "card_exp_year": "25", - "card_holder_name": "joseph Doe", - "card_cvc": "123" - } - }, - "setup_future_usage": "off_session", - "customer_acceptance": { - "acceptance_type": "online", - "accepted_at": "1963-05-03T04:07:52.723Z", - "online": { - "ip_address": "127.0.0.1", - "user_agent": "amet irure esse" - } - } + "setup_future_usage": "off_session", + "customer_acceptance": { + "acceptance_type": "online", + "accepted_at": "1963-05-03T04:07:52.723Z", + "online": { + "ip_address": "127.0.0.1", + "user_agent": "amet irure esse" + } } + } }' ``` @@ -291,28 +281,28 @@ Response: ``` { - "id": "subscription_wBV1G9dhh6EBhTOTXRBA", - "merchant_reference_id": null, - "status": "active", - "plan_id": null, - "price_id": null, - "coupon": null, + "id": "subscription_wBV1G9dhh6EBhTOTXRBA", + "merchant_reference_id": null, + "status": "active", + "plan_id": null, + "price_id": null, + "coupon": null, + "profile_id": "profile_id", + "payment": null, + "customer_id": "customer_id", + "invoice": { + "id": "invoice_0XANlbhMp2V7wUvWRhhJ", + "subscription_id": "subscription_wBV1G9dhh6EBhTOTXRBA", + "merchant_id": "merchant_id", "profile_id": "profile_id", - "payment": null, - "customer_id": "customer_id", - "invoice": { - "id": "invoice_0XANlbhMp2V7wUvWRhhJ", - "subscription_id": "subscription_wBV1G9dhh6EBhTOTXRBA", - "merchant_id": "merchant_id", - "profile_id": "profile_id", - "merchant_connector_id": "mac_id", - "payment_intent_id": null, - "payment_method_id": null, - "customer_id": "cus_id", - "amount": 14100, - "currency": "INR", - "status": "InvoiceCreated" - } + "merchant_connector_id": "mac_id", + "payment_intent_id": null, + "payment_method_id": null, + "customer_id": "cus_id", + "amount": 14100, + "currency": "INR", + "status": "InvoiceCreated" + } } ``` {% endstep %} @@ -323,21 +313,21 @@ Sync with the status of the Subscription API to disburse services to subscribed {% code overflow="wrap" %} ``` curl --location 'http:///subscriptions/' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'X-Profile-Id: ' \ ---header 'api-key: ' +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'X-Profile-Id: ' \ +*-header 'api-key: ' RESPONSE: { - "id": "", - "merchant_reference_id": "mer_ref_id", - "status": "active", - "plan_id": null, - "profile_id": "", - "merchant_id": "", - "coupon_code": null, - "customer_id": "" + "id": "", + "merchant_reference_id": "mer_ref_id", + "status": "active", + "plan_id": null, + "profile_id": "", + "merchant_id": "", + "coupon_code": null, + "customer_id": "" } ``` {% endcode %} @@ -348,7 +338,7 @@ Monitor incoming webhooks for renewal during subsequent cycles {% endstep %} {% endstepper %} -#### Decoupled CIT and MIT Flow +### Decoupled CIT and MIT Flow Hyperswitch supports decoupled transaction flows, allowing Merchant-Initiated Transactions (MITs) to be processed independently of the original Customer-Initiated Transaction (CIT), even when the CIT was completed outside the Hyperswitch platform. @@ -362,12 +352,12 @@ MITs are initiated by invoking the [`/payments`](https://api-reference.hyperswit [**Limited Card Data**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-6) **:** Use a reduced card data set captured at the time of subscription creation to authorize subsequent MITs. -#### FAQs +### FAQs -##### 1. What are subscriptions providers that are currently supported? +#### 1. What are subscriptions providers that are currently supported? Currently we support Chargebee integration. In the upcoming roadmap we are planning to extend support for Recurly, Stripe Billing and Zuora -##### 2. Can the entire experience from plan display, price estimation to payments be handled by Hyperswitch SDK? +#### 2. Can the entire experience from plan display, price estimation to payments be handled by Hyperswitch SDK? We are planning to release a Hyperswitch Subscriptions SDK that will take care of the end-to-end experience. diff --git a/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/README.md b/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/README.md index f74eddc7..711afcc9 100644 --- a/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/README.md +++ b/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/README.md @@ -19,7 +19,7 @@ But in some cases, merchants would like to place a hold on the customer's funds ### How to do Manual Capture? -#### Step 1 — Create [Payment](https://api-reference.hyperswitch.io/v1/payments/payments--create) with Deferred Capture +### Step 1 — Create [Payment](https://api-reference.hyperswitch.io/v1/payments/payments--create) with Deferred Capture The 'capture\_method' field determines the type of capture for a particular payment and it defaults to 'automatic' if not passed. So, to do manual capture, set `"capture_method" = "manual"` when creating a payment from your server @@ -27,32 +27,32 @@ The 'capture\_method' field determines the type of capture for a particular paym ```bash curl --location 'https://sandbox.hyperswitch.io/payments' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data '{ - "amount": 6540, - "currency": "USD", - "confirm": false, - "capture_method": "manual", - "authentication_type": "no_three_ds", - "return_url": "https://duck.com", - "billing": { - "address": { - "line1": "1467", - "line2": "Harrison Street", - "line3": "Harrison Street", - "city": "San Fransico", - "state": "California", - "zip": "94122", - "country": "US", - "first_name": "John" - } +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data '{ + "amount": 6540, + "currency": "USD", + "confirm": false, + "capture_method": "manual", + "authentication_type": "no_three_ds", + "return_url": "https://duck.com", + "billing": { + "address": { + "line1": "1467", + "line2": "Harrison Street", + "line3": "Harrison Street", + "city": "San Fransico", + "state": "California", + "zip": "94122", + "country": "US", + "first_name": "John" } + } }' ``` -#### Step 2 — Confirm (Authorization Phase) +### Step 2 — Confirm (Authorization Phase) [Confirm](https://api-reference.hyperswitch.io/v1/payments/payments--confirm) the payment after collecting the payment_method details from your customer and informing them that the funds in their account would be blocked and charged later once the goods and services are delivered. Unified checkout handles this automatically. On successful authorization, the payment would transition to `'requires_capture'` status. @@ -62,25 +62,25 @@ Note - You can mark `"confirm" = "true"` in the previous step and directly move ```bash curl --location 'https://sandbox.hyperswitch.io/payments//confirm' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data '{ - "payment_method": "card", - "client_secret": "", - "payment_method_data": { - "card": { - "card_number": "4242424242424242", - "card_exp_month": "10", - "card_exp_year": "25", - "card_holder_name": "joseph Doe", - "card_cvc": "123" - } +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data '{ + "payment_method": "card", + "client_secret": "", + "payment_method_data": { + "card": { + "card_number": "4242424242424242", + "card_exp_month": "10", + "card_exp_year": "25", + "card_holder_name": "joseph Doe", + "card_cvc": "123" } + } }' ``` -#### Step 3 — Capture Funds via [Capture API](https://api-reference.hyperswitch.io/v1/payments/payments--capture#payments-capture) +### Step 3 — Capture Funds via [Capture API](https://api-reference.hyperswitch.io/v1/payments/payments--capture#payments-capture) After delivering the goods and services, capture the payment by passing the `payment_id` from above step to `payments/capture` API endpoint. On successful capture, the payment would transition from `'requires_capture'` to `'succeeded'` status. @@ -88,36 +88,36 @@ After delivering the goods and services, capture the payment by passing the `pay ```bash curl --location 'https://sandbox.hyperswitch.io/payments/pay_At7O43TJJZyP7OmrcdQD/capture' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data '{ - "amount_to_capture": 6540, - "statement_descriptor_name": "Joseph", - "statement_descriptor_suffix": "JS" +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data '{ + "amount_to_capture": 6540, + "statement_descriptor_name": "Joseph", + "statement_descriptor_suffix": "JS" }' ``` ### Capture types available : -#### **Full capture** +### **Full capture** -Capture the full amount that was authorized - Here the payments status transitions to 'SUCCEEDED' as soon the `payments/capture` API endpoint is executed for the `payment_id` . +Capture the full amount that was authorized - Here the payments status transitions to 'SUCCEEDED' as soon the `payments/capture` API endpoint is executed for the `payment_id` . -#### **Partial Capture** +### **Partial Capture** Capture only a partial amount from the total amount that was authorized. Once the transaction is executed, the status goes to either `partially_captured` or `partially_captured_and_capturable` 1. When capture method is manual & single capture is supported - `partially_captured` -2. When capture method is manual & multiple captures are supported - `partially_captured_and_capturable`
+2. When capture method is manual & multiple captures are supported - `partially_captured_and_capturable`
Possible states: -| Connector Capability | Resulting Status | -| -------------------------- | ----------------------------------- | -| Single capture only | `partially_captured` | -| Multiple capture supported | `partially_captured_and_capturable` | + | Connector Capability | Resulting Status | + | -------------------------- | ----------------------------------- | + | Single capture only | `partially_captured` | + | Multiple capture supported | `partially_captured_and_capturable` | -#### Over Capture +### Over Capture Over Capture occurs when a merchant captures (settles) an amount greater than the originally authorized amount. You can find detailed docs [here](https://docs.hyperswitch.io/~/revisions/KHifKaZGv4c5XEloMvlu/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/overcapture) diff --git a/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/overcapture.md b/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/overcapture.md index ce1ee620..61736299 100644 --- a/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/overcapture.md +++ b/about-hyperswitch/payment-suite-1/payments-cards/manual-capture/overcapture.md @@ -17,13 +17,13 @@ This is particularly useful in scenarios such as: ### Enabling Over Capture -#### 1. Profile-level Configuration (via Dashboard) +### 1. Profile-level Configuration (via Dashboard) * Navigate to:\ - Developer → Payment Settings → Always Enable Over Capture + Developer → Payment Settings → Always Enable Over Capture * Toggle Enable/Disable as required. -#### 2. Per-request Configuration (via API) +### 2. Per-request Configuration (via API) Use the boolean field `enable_overcapture` in your payment request. @@ -44,15 +44,15 @@ This can be passed in: ```json curl --location 'https://sandbox.hyperswitch.io/payments' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data '{ - "amount": 100, - "currency": "USD", - "confirm": true, - "capture_method": "manual", - "enable_overcapture": true, +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data '{ + "amount": 100, + "currency": "USD", + "confirm": true, + "capture_method": "manual", + "enable_overcapture": true, }' ``` @@ -61,40 +61,40 @@ curl --location 'https://sandbox.hyperswitch.io/payments' \ ```json { - "payment_id": "pay_GPnTPs4e56yZ8FKAcj0K", - "status": "requires_capture", - "amount": 100, - "amount_capturable": 100, - "connector": "adyen", - "enable_overcapture": true, - "is_overcapture_enabled": true, - "capture_method": "manual", - "payment_method": "card", - "payment_method_type": "debit", - "network_transaction_id": "112181545921495", - "created": "2025-09-24T11:29:55.629Z", - "expires_on": "2025-09-24T11:44:55.629Z" + "payment_id": "pay_GPnTPs4e56yZ8FKAcj0K", + "status": "requires_capture", + "amount": 100, + "amount_capturable": 100, + "connector": "adyen", + "enable_overcapture": true, + "is_overcapture_enabled": true, + "capture_method": "manual", + "payment_method": "card", + "payment_method_type": "debit", + "network_transaction_id": "112181545921495", + "created": "2025-09-24T11:29:55.629Z", + "expires_on": "2025-09-24T11:44:55.629Z" } ``` -#### Field Semantics +### Field Semantics `enable_overcapture` Indicates merchant intent. -| Value | Meaning | -| ------- | -------------------------- | -| `true` | Over-capture requested | -| `false` | Over-capture not requested | + | Value | Meaning | + | ------- | -------------------------- | + | `true` | Over-capture requested | + | `false` | Over-capture not requested | *** `is_overcapture_enabled` Indicates connector capability acceptance. -| Value | Meaning | -| ------- | ------------------------------------------- | -| `true` | Connector supports and enabled over-capture | -| `false` | Connector does not support over-capture | + | Value | Meaning | + | ------- | ------------------------------------------- | + | `true` | Connector supports and enabled over-capture | + | `false` | Connector does not support over-capture | *** diff --git a/about-hyperswitch/payment-suite-1/payments-cards/recurring-payments.md b/about-hyperswitch/payment-suite-1/payments-cards/recurring-payments.md index 600958ac..234f2af5 100644 --- a/about-hyperswitch/payment-suite-1/payments-cards/recurring-payments.md +++ b/about-hyperswitch/payment-suite-1/payments-cards/recurring-payments.md @@ -5,13 +5,13 @@ icon: arrows-rotate-reverse # Recurring payments -Recurring payments via Hyperswitch can be setup by passing some additional flags, as highlighted below. The recurring payments are not tied to a specific amount or cycle and the merchant can charge the end-user as per their own business requirements. +Recurring payments via Juspay Hyperswitch can be setup by passing some additional flags, as highlighted below. The recurring payments are not tied to a specific amount or cycle and the merchant can charge the end-user as per their own business requirements. -#### Programmatic Card-on-File Setup with Immediate Charge (CIT + Save) +### Programmatic Card-on-File Setup with Immediate Charge (CIT + Save) When setting up subscription there are two distinct implementation flows. The correct flow depends on whether you intend to charge the customer immediately or simply validate their details for later use. -##### 1. The Setup with Charge Flow +#### 1. The Setup with Charge Flow **Use Case:** Use this when you need to collect a payment immediately (e.g., the first month of a subscription or a setup fee) while simultaneously saving the card details for future automatic charges. For this call Payments API with the below configuration parameters. @@ -19,32 +19,30 @@ When setting up subscription there are two distinct implementation flows. The co Include below parameter and values while calling the [payments](https://api-reference.hyperswitch.io/v1/payments/payments--create) API. -| Parameter | Value | -| -------------------- | ---------------------- | -| `amount` | >0 (Greater than zero) | -| `setup_future_usage` | `off_session` | + | Parameter | Value | + | -------------------- | ---------------------- | + | `amount` | >0 (Greater than zero) | + | `setup_future_usage` | `off_session` | **Run-Ready API Example (CIT with Charge)** ```json curl --location 'https://sandbox.hyperswitch.io/payments' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data-raw '{ - "amount": 6540, - "currency": "USD", - "profile_id": , - "setup_future_usage":"off_session", - "customer_id": "customer123", - "description": "Its my first payment request", - "return_url": "https://example.com", // +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data-raw '{ + "amount": 6540, + "currency": "USD", + "profile_id": , + "setup_future_usage":"off_session", + "customer_id": "customer123", + "description": "Its my first payment request", + "return_url": "https://example.com", // }' ``` - - -##### 2. Zero Dollar Authorization (Mandate-Only Setup) +#### 2. Zero Dollar Authorization (Mandate-Only Setup) **Use Case:** Use this for free trials, pay-later models, or delayed billing. This flow validates the payment method details without charging the customer's card. @@ -52,20 +50,20 @@ curl --location 'https://sandbox.hyperswitch.io/payments' \ Pass below parameters while calling payments API for [Zero Dollar Auth ](https://docs.hyperswitch.io/explore-hyperswitch/payment-orchestration/quickstart/tokenization-and-saved-cards/zero-amount-authorization-1) -| Parameter | Value | -| -------------------- | -------------- | -| `setup_future_usage` | `off_session` | -| `amount` | `0` | -| `payment_type` | `payment_type` | + | Parameter | Value | + | -------------------- | -------------- | + | `setup_future_usage` | `off_session` | + | `amount` | `0` | + | `payment_type` | `payment_type` | **Run-Ready API Example (Zero Auth Mandate)** ```json curl --location 'http://sandbox.hyperswitch.io/payments' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data-raw '{ +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data-raw '{ "amount": 0, "currency": "USD", "confirm": false, @@ -80,36 +78,34 @@ curl --location 'http://sandbox.hyperswitch.io/payments' \ }' ``` -Once the CIT is successful, Hyperswitch returns a `payment_method_id` . This `payment_method_id` can be used by the merchant for all subsequent MIT recurring payments. Hyperswitch also returns the `network_transction_id` (NTID) in its response to allow PICI compliant merchants to direct pass card + NTID for processing MIT recurring payments +Once the CIT is successful, Hyperswitch returns a `payment_method_id` . This `payment_method_id` can be used by the merchant for all subsequent MIT recurring payments. Hyperswitch also returns the `network_transction_id` (NTID) in its response to allow PICI compliant merchants to direct pass card + NTID for processing MIT recurring payments -The `payment_method_id` serves as a unique identifier mapped to a specific combination of a Customer ID and a unique Payment Instrument (e.g., a specific credit card, digital wallet, or bank account). A single customer can have multiple payment methods, each assigned a distinct ID. However, the same payment instrument used by the same customer will always resolve to the same `payment_method_id`. This uniqueness applies across all payment types, including cards, wallets, and bank details. +The `payment_method_id` serves as a unique identifier mapped to a specific combination of a Customer ID and a unique Payment Instrument (e.g., a specific credit card, digital wallet, or bank account). A single customer can have multiple payment methods, each assigned a distinct ID. However, the same payment instrument used by the same customer will always resolve to the same `payment_method_id`. This uniqueness applies across all payment types, including cards, wallets, and bank details. For example, you can refer the below table - -| **Customer ID** | **Payment Instrument** | **Payment Method ID** | -| --------------- | --------------------------------- | --------------------- | -| 123 | Visa ending in 4242 | `PM1` | -| 123 | Mastercard ending in 1111 | `PM2` | -| 456 | Visa ending in 4242 | `PM3` | -| 123 | PayPal Account (`user@email.com`) | `PM4` | + | **Customer ID** | **Payment Instrument** | **Payment Method ID** | + | --------------- | --------------------------------- | --------------------- | + | 123 | Visa ending in 4242 | `PM1` | + | 123 | Mastercard ending in 1111 | `PM2` | + | 456 | Visa ending in 4242 | `PM3` | + | 123 | PayPal Account (`user@email.com`) | `PM4` | Internally the payment_method_id is mapped to a bunch of credentials - PSP token, Raw card + NTID, Network token + NTID depending on functionalities enabled for the merchant. +### Customer Consent Capture (Mandate Compliance) - -#### Customer Consent Capture (Mandate Compliance) - -If you are not using Hyperswitch SDK, then `customer_acceptance` (customer's consent)is required along with the other parameters [confirm](https://api-reference.hyperswitch.io/v1/payments/payments--confirm) request to store the card. +If you are not using Hyperswitch SDK, then `customer_acceptance` (customer's consent)is required along with the other parameters [confirm](https://api-reference.hyperswitch.io/v1/payments/payments--confirm) request to store the card. ```bash "customer_acceptance": { - "acceptance_type": "online", - "accepted_at": "1963-05-03T04:07:52.723Z", - "online": { - "ip_address": "in sit", - "user_agent": "amet irure esse" - } + "acceptance_type": "online", + "accepted_at": "1963-05-03T04:07:52.723Z", + "online": { + "ip_address": "in sit", + "user_agent": "amet irure esse" } + } ``` If you are using the Hyperswitch SDK, the `customer_acceptance` is sent in the [confirm](https://api-reference.hyperswitch.io/v1/payments/payments--confirm) request on the basis of customer clicking the save card radio button @@ -118,21 +114,21 @@ If you are using the Hyperswitch SDK, the `customer_acceptance` is sent in the [ *** -#### Merchant-Initiated Transactions (MIT) – Decoupled Execution +### Merchant-Initiated Transactions (MIT) – Decoupled Execution Hyperswitch supports decoupled transaction flows, allowing Merchant-Initiated Transactions (MITs) to be processed independently of the original Customer-Initiated Transaction (CIT), even when the CIT was completed outside the Hyperswitch platform. MITs are initiated by invoking the [`/payments`](https://api-reference.hyperswitch.io/v1/payments/payments--create) API with `off_session: true` and providing the available reference data in the `recurring_details` object. Depending on artifacts available in your system, one of the following approaches can be used: -##### [**Payment Method ID**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#body-recurring-details) +#### [**Payment Method ID**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#body-recurring-details) Submit the Hyperswitch generated payment_method_id to process the MIT transaction. Depending on the merchant configurations the MIT will be processed with the same PSP or with a different PSP. -##### [**Processor Payment Token**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-3) +#### [**Processor Payment Token**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-3) Submit a processor-issued token that represents the previously authorized payment instrument. -##### [**Network Transaction ID with Card Data**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-4) +#### [**Network Transaction ID with Card Data**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-4) Provide the original network transaction identifier along with the associated primary card data required for authorization. @@ -150,17 +146,17 @@ Email the PSP Support requesting: * Explain your use case: enabling cross-processor MIT payments using network transaction IDs from card schemes {% endhint %} -##### [**Network Transaction ID with Network Token**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-5) **:** +#### [**Network Transaction ID with Network Token**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-5) **:** Submit the network transaction identifier in combination with the corresponding network tokenized card credentials. -##### [**Limited Card Data**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-6) **:** +#### [**Limited Card Data**](https://api-reference.hyperswitch.io/v1/payments/payments--confirm#option-6) **:** Use a reduced card data set captured at the time of subscription creation to authorize subsequent MITs. *** -#### Connector-Agnostic MIT Routing +### Connector-Agnostic MIT Routing The CIT used to set up recurring payments via MIT uses the PG token. This introduces a connector stickiness since the recurring payments can only go through the connector which issued the token. @@ -170,17 +166,17 @@ In the following MIT payments basis the enablement of the feature and the availa
-##### Enabling Connector agnostic MITs +#### Enabling Connector agnostic MITs To start routing MIT payments across all supported connectors in addition to the connector through which the recurring payment was set up, use the below API to enable it for a business profile ```bash curl --location 'http://sandbox.hyperswitch.io/account/:merchant_id/business_profile/:profile_id/toggle_connector_agnostic_mit' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: api_key' \ ---data '{ - "enabled": true +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: api_key' \ +*-data '{ + "enabled": true }' ``` @@ -188,7 +184,7 @@ All the payment methods saved with `setup_future_usage : off_session` after enab *** -#### Routing example - CITs are routed through PSP-1 and all MITs through PSP-2 +### Routing example - CITs are routed through PSP-1 and all MITs through PSP-2 The [Hyperswitch dashboard](https://app.hyperswitch.io/dashboard/routing/rule) provides UI to configure routing rules for PG Agnostic Recurring Payments. You can choose the profile for which you wish to configure the rule in the Smart Routing Configuration. @@ -200,19 +196,19 @@ This rule would be used in conjunction with the other active routing rules that Once the rule is configured, you would need to send the following metadata as per the payment request: -##### **Metadata to be sent in CITs** +#### **Metadata to be sent in CITs** ``` "metadata": { - "is_cit": "true" + "is_cit": "true" } ``` -##### **Metadata to be sent in MITs** +#### **Metadata to be sent in MITs** ``` "metadata": { - "is_mit": "true" + "is_mit": "true" } ``` diff --git a/about-hyperswitch/payment-suite-1/payments-cards/saved-card/README.md b/about-hyperswitch/payment-suite-1/payments-cards/saved-card/README.md index d655b341..b36ba64d 100644 --- a/about-hyperswitch/payment-suite-1/payments-cards/saved-card/README.md +++ b/about-hyperswitch/payment-suite-1/payments-cards/saved-card/README.md @@ -1,5 +1,5 @@ --- -description: Implement secure saved card flows using the Hyperswitch SDK to vault card data and enable seamless checkout experiences for new and returning customers +description: Implement secure saved card flows using the Juspay Hyperswitch SDK to vault card data and enable seamless checkout experiences for new and returning customers icon: hard-drive --- @@ -9,28 +9,26 @@ In this approach, the Hyperswitch SDK is used on the frontend to capture card de The merchant uses the Hyperswitch Dashboard to configure connectors, routing rules, and orchestration logic. All payment requests are initiated using vault tokens, and raw card data never reaches merchant systems. Since card details are handled entirely by Hyperswitch, merchants are not required to be PCI DSS compliant for card data handling. -#### **New User (Payments SDK)** +### **New User (Payments SDK)**
- - -##### **1. Create Payment (Server-Side)** +#### **1. Create Payment (Server-Side)** The merchant server creates a payment by calling the Hyperswitch [`payments/create`](https://api-reference.hyperswitch.io/v1/payments/payments--create) API with transaction details such as amount and currency. Hyperswitch responds with a `payment_id`, `customer_id` and `client_secret`, which are required for client-side processing. ```json curl --location 'https://sandbox.hyperswitch.io/payments' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data-raw '{ - "amount": 6540, - "currency": "USD", - "profile_id": , - "customer_id": "customer123", - "description": "Its my first payment request", - "return_url": "https://example.com", // +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data-raw '{ + "amount": 6540, + "currency": "USD", + "profile_id": , + "customer_id": "customer123", + "description": "Its my first payment request", + "return_url": "https://example.com", // }' ``` @@ -38,81 +36,81 @@ curl --location 'https://sandbox.hyperswitch.io/payments' \ Note - In case the merchant does not pass the customer ID, then the transaction is treated as a Guest customer checkout {% endhint %} -##### **2. Initialize SDK (Client-Side)** +#### **2. Initialize SDK (Client-Side)** The merchant client initializes the Hyperswitch SDK using the `client_secret` and `publishable_key`. The SDK fetches eligible payment methods from Hyperswitch and renders a secure payment UI. ```js // Fetches a payment intent and captures the client secret async function initialize() { - const response = await fetch("/create-payment", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({currency: "USD",amount: 100}), - }); - const { clientSecret } = await response.json(); - - // Initialise Hyperloader.js - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.src = "https://beta.hyperswitch.io/v1/HyperLoader.js"; - - let hyper; - script.onload = () => { - hyper = window.Hyper("YOUR_PUBLISHABLE_KEY",{ - customBackendUrl: "YOUR_BACKEND_URL", - //You can configure this as an endpoint for all the api calls such as session, payments, confirm call. - }) - const appearance = { - theme: "midnight", - }; - const widgets = hyper.widgets({ appearance, clientSecret }); - const unifiedCheckoutOptions = { - layout: "tabs", - wallets: { - walletReturnUrl: "https://example.com/complete", - //Mandatory parameter for Wallet Flows such as Googlepay, Paypal and Applepay - }, - }; - const unifiedCheckout = widgets.create("payment", unifiedCheckoutOptions); - unifiedCheckout.mount("#unified-checkout"); - }; - document.body.appendChild(script); + const response = await fetch("/create-payment", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({currency: "USD",amount: 100}), + }); + const { clientSecret } = await response.json(); + + // Initialise Hyperloader.js + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = "https://beta.hyperswitch.io/v1/HyperLoader.js"; + + let hyper; + script.onload = () => { + hyper = window.Hyper("YOUR_PUBLISHABLE_KEY",{ + customBackendUrl: "YOUR_BACKEND_URL", + //You can configure this as an endpoint for all the api calls such as session, payments, confirm call. + }) + const appearance = { + theme: "midnight", + }; + const widgets = hyper.widgets({ appearance, clientSecret }); + const unifiedCheckoutOptions = { + layout: "tabs", + wallets: { + walletReturnUrl: "https://example.com/complete", + //Mandatory parameter for Wallet Flows such as Googlepay, Paypal and Applepay + }, + }; + const unifiedCheckout = widgets.create("payment", unifiedCheckoutOptions); + unifiedCheckout.mount("#unified-checkout"); + }; + document.body.appendChild(script); } ``` -##### **3. Collect Card Details** +#### **3. Collect Card Details** The customer selects a card payment method and enters their card details directly within the SDK-managed interface, ensuring sensitive data never passes through merchant systems. -##### **4. Authorize and Store Card** +#### **4. Authorize and Store Card** The SDK submits a [`payments/confirm`](https://api-reference.hyperswitch.io/v1/payments/payments--confirm) request to Hyperswitch. Hyperswitch authorizes the payment with the processor and securely stores the card in the Hyperswitch Vault, generating a reusable `payment_method_id`. -#### **5. Return Status** +### **5. Return Status** The final payment and vaulting status is returned to the SDK, which redirects the customer to the merchant's configured `return_url`. -#### **Returning or Repeat User (Payments SDK)** +### **Returning or Repeat User (Payments SDK)**
-#### **1. Create Payment (Server-Side)** +### **1. Create Payment (Server-Side)** The merchant server initiates the payment by calling the [`payments/create`](https://api-reference.hyperswitch.io/v1/payments/payments--create) API with transaction details such as amount and currency. Hyperswitch responds with a `payment_id` , `customer_id` and `client_secret`, which are required for client-side processing. ```json curl --location 'https://sandbox.hyperswitch.io/payments' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data-raw '{ - "amount": 6540, - "currency": "USD", - "profile_id": , - "customer_id": "customer123", - "description": "Its my first payment request", - "return_url": "https://example.com", // +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data-raw '{ + "amount": 6540, + "currency": "USD", + "profile_id": , + "customer_id": "customer123", + "description": "Its my first payment request", + "return_url": "https://example.com", // }' ``` @@ -122,64 +120,62 @@ Note - The merchant needs to pass the same customer ID for the SDK to fetch the In case the merchant is not using the SDK then they need to use the List Customer Saved Payment Methods API to fetch the stored payment methods against a customer {% endhint %} -##### **2. Initialize SDK and Fetch Saved Cards** +#### **2. Initialize SDK and Fetch Saved Cards** The merchant client initializes the Hyperswitch SDK. The SDK requests eligible payment methods from Hyperswitch, including any saved cards associated with the customer. ```js // Fetches a payment intent and captures the client secret async function initialize() { - const response = await fetch("/create-payment", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({currency: "USD",amount: 100}), - }); - const { clientSecret } = await response.json(); - - // Initialise Hyperloader.js - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.src = "https://beta.hyperswitch.io/v1/HyperLoader.js"; - - let hyper; - script.onload = () => { - hyper = window.Hyper("YOUR_PUBLISHABLE_KEY",{ - customBackendUrl: "YOUR_BACKEND_URL", - //You can configure this as an endpoint for all the api calls such as session, payments, confirm call. - }) - const appearance = { - theme: "midnight", - }; - const widgets = hyper.widgets({ appearance, clientSecret }); - const unifiedCheckoutOptions = { - layout: "tabs", - wallets: { - walletReturnUrl: "https://example.com/complete", - //Mandatory parameter for Wallet Flows such as Googlepay, Paypal and Applepay - }, - }; - const unifiedCheckout = widgets.create("payment", unifiedCheckoutOptions); - unifiedCheckout.mount("#unified-checkout"); - }; - document.body.appendChild(script); + const response = await fetch("/create-payment", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({currency: "USD",amount: 100}), + }); + const { clientSecret } = await response.json(); + + // Initialise Hyperloader.js + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = "https://beta.hyperswitch.io/v1/HyperLoader.js"; + + let hyper; + script.onload = () => { + hyper = window.Hyper("YOUR_PUBLISHABLE_KEY",{ + customBackendUrl: "YOUR_BACKEND_URL", + //You can configure this as an endpoint for all the api calls such as session, payments, confirm call. + }) + const appearance = { + theme: "midnight", + }; + const widgets = hyper.widgets({ appearance, clientSecret }); + const unifiedCheckoutOptions = { + layout: "tabs", + wallets: { + walletReturnUrl: "https://example.com/complete", + //Mandatory parameter for Wallet Flows such as Googlepay, Paypal and Applepay + }, + }; + const unifiedCheckout = widgets.create("payment", unifiedCheckoutOptions); + unifiedCheckout.mount("#unified-checkout"); + }; + document.body.appendChild(script); } ``` -##### **3. Customer Selects a Saved Card** +#### **3. Customer Selects a Saved Card** The SDK displays the saved cards in the payment UI, customer enters the CVV. -##### **4. Retrieve Card Data and Authorize** +#### **4. Retrieve Card Data and Authorize** The SDK sends a [`payments/confirm`](https://api-reference.hyperswitch.io/v1/payments/payments--confirm) request with the selected `payment_method_id`. Hyperswitch securely retrieves the card data from the Hyperswitch Vault and submits the authorization request to the processor via the Hyperswitch Connector. -##### **5. Return Status** +#### **5. Return Status** The processor returns the authorization result to Hyperswitch, which forwards the final status to the SDK. The customer is redirected to the merchant's `return_url` with the payment outcome. - - -#### Integration Guide : +### Integration Guide : [Unified Checkout ](https://docs.hyperswitch.io/~/revisions/DXTxY8PvOykOfdbFcGmW/explore-hyperswitch/payment-experience/payment/web) diff --git a/about-hyperswitch/payment-suite-1/payments-cards/saved-card/save-a-payment-method.md b/about-hyperswitch/payment-suite-1/payments-cards/saved-card/save-a-payment-method.md index 3eb90b28..cd8cb1ed 100644 --- a/about-hyperswitch/payment-suite-1/payments-cards/saved-card/save-a-payment-method.md +++ b/about-hyperswitch/payment-suite-1/payments-cards/saved-card/save-a-payment-method.md @@ -5,12 +5,12 @@ icon: repeat # Use cases for Saved card -Hyperswitch supports the following ways of saving a payment method used in a successful payment: +Juspay Hyperswitch supports the following ways of saving a payment method used in a successful payment: 1. Saving for future customer on-session payments (COF-CIT) 2. Saving for future customer off-session payments (MIT) -#### Saving a payment method for future on-session payments (COF CIT) +### Saving a payment method for future on-session payments (COF CIT) To improve conversion rates and eliminate friction for the customer during checkout, you can save the customer's card so that they wouldn't have to enter the card details every time. This is also minimises the risk of the customer entering incorrect card details. @@ -24,17 +24,17 @@ For saving a customer's payment method used in a successful transaction: ```bash curl --location 'https://sandbox.hyperswitch.io/payments' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data-raw '{ - "amount": 6540, - "currency": "USD", - "profile_id": , - "setup_future_usage":"on_session", - "customer_id": "customer123", - "description": "Its my first payment request", - "return_url": "https://example.com", // +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data-raw '{ + "amount": 6540, + "currency": "USD", + "profile_id": , + "setup_future_usage":"on_session", + "customer_id": "customer123", + "description": "Its my first payment request", + "return_url": "https://example.com", // }' ``` @@ -42,13 +42,13 @@ curl --location 'https://sandbox.hyperswitch.io/payments' \ ```bash "customer_acceptance": { - "acceptance_type": "online", - "accepted_at": "1963-05-03T04:07:52.723Z", - "online": { - "ip_address": "in sit", - "user_agent": "amet irure esse" - } + "acceptance_type": "online", + "accepted_at": "1963-05-03T04:07:52.723Z", + "online": { + "ip_address": "in sit", + "user_agent": "amet irure esse" } + } ``` {% hint style="info" %} @@ -61,29 +61,29 @@ If you are using the Hyperswitch SDK, the `customer_acceptance` is sent in the ` *** -#### Saving a payment method for future MIT payments +### Saving a payment method for future MIT payments Let's say, you want to save a customer's payment method to charge them at a later point without the need for additional cardholder authentication. This is done by raising an MIT (Merchant Initiated Transaction) exemption to the card network by the payment processor with reference to an initial transaction where the customer has authorised recurring charges. These are typically used when you want to charge a customer periodically/sporadically with a flexibility on the amount to be charged and number of charges. Based on the payment processors support, this functionality is also available for other payment methods like Apple Pay and Google Pay Wallets. -##### To save a customer's payment method used in a successful transaction for future MIT payments: +#### To save a customer's payment method used in a successful transaction for future MIT payments: * Pass the following field in the `/payments` create request to indicate your intention to save the payment method ```bash curl --location 'https://sandbox.hyperswitch.io/payments' \ ---header 'Content-Type: application/json' \ ---header 'Accept: application/json' \ ---header 'api-key: ' \ ---data-raw '{ - "amount": 6540, - "currency": "USD", - "profile_id": , - "setup_future_usage":"off_session", - "customer_id": "customer123", - "description": "Its my first payment request", - "return_url": "https://example.com", // +*-header 'Content-Type: application/json' \ +*-header 'Accept: application/json' \ +*-header 'api-key: ' \ +*-data-raw '{ + "amount": 6540, + "currency": "USD", + "profile_id": , + "setup_future_usage":"off_session", + "customer_id": "customer123", + "description": "Its my first payment request", + "return_url": "https://example.com", // }' ``` @@ -91,13 +91,13 @@ curl --location 'https://sandbox.hyperswitch.io/payments' \ ```bash "customer_acceptance": { - "acceptance_type": "online", - "accepted_at": "1963-05-03T04:07:52.723Z", - "online": { - "ip_address": "in sit", - "user_agent": "amet irure esse" - } + "acceptance_type": "online", + "accepted_at": "1963-05-03T04:07:52.723Z", + "online": { + "ip_address": "in sit", + "user_agent": "amet irure esse" } + } ``` {% hint style="info" %} @@ -110,20 +110,20 @@ Retrieve the `payment_method_id` that was created against the above payment by r ```bash curl --location 'https://sandbox.hyperswitch.io/payments/' \ ---header 'Accept: application/json' \ ---header 'api-key: ' +*-header 'Accept: application/json' \ +*-header 'api-key: ' ``` *** -#### Using a saved payment method to do a MIT payment +### Using a saved payment method to do a MIT payment Once a customer's payment method is saved for MIT payments you can start charging the customer by sending the following details in the `/payments` request
"off_session": true,
 "recurring_details": {
-        "type": "payment_method_id",
-        "data": "pm_lmTnIO5EdCiiMgRPrV9x" //pass the payment method id here
+    "type": "payment_method_id",
+    "data": "pm_lmTnIO5EdCiiMgRPrV9x" //pass the payment method id here
 }
 
@@ -133,26 +133,26 @@ To get all the payment methods saved for a customer use the[ List Customer Payme ```bash curl --request GET \ - --url https://sandbox.hyperswitch.io/customers/{customer_id}/payment_methods \ - --header 'api-key: ' + *-url https://sandbox.hyperswitch.io/customers/{customer_id}/payment_methods \ + *-header 'api-key: ' ``` *** -#### Processing MIT Payments Without a Saved Payment Method +### Processing MIT Payments Without a Saved Payment Method If a merchant is PCI-compliant and has the customer payment method details stored, an MIT payment can be performed by passing the card details and the network transaction id directly in the confirm call.
"off_session": true,
 "recurring_details": {
-        "type": "network_transaction_id_and_card_details",
-        "data": {
-            "card_number": "4242424242424242",
-            "card_exp_month": "10",
-            "card_exp_year": "25",
-            "card_holder_name": "joseph Doe",
-            "network_transaction_id": "MCC5ZRGMI0925" //scheme transaction id
-        }
+    "type": "network_transaction_id_and_card_details",
+    "data": {
+      "card_number": "4242424242424242",
+      "card_exp_month": "10",
+      "card_exp_year": "25",
+      "card_holder_name": "joseph Doe",
+      "network_transaction_id": "MCC5ZRGMI0925" //scheme transaction id
+    }
 }
 
diff --git a/about-hyperswitch/payment-suite-1/payments/README.md b/about-hyperswitch/payment-suite-1/payments/README.md index dd2e8614..5030dcc1 100644 --- a/about-hyperswitch/payment-suite-1/payments/README.md +++ b/about-hyperswitch/payment-suite-1/payments/README.md @@ -5,21 +5,21 @@ icon: file-invoice-dollar # Payments (cards) -Hyperswitch provides flexible payment processing with multiple flow patterns to accommodate different business needs. The system supports one-time payments, saved payment methods, and recurring billing through a comprehensive API design. +Juspay Hyperswitch provides flexible payment processing with multiple flow patterns to accommodate different business needs. The system supports one-time payments, saved payment methods, and recurring billing through a comprehensive API design. {% hint style="info" %} -#### Integration Path +### Integration Path -#### Client-Side SDK Payments (Tokenise Post Payment) +### Client-Side SDK Payments (Tokenise Post Payment) -Refer to Payments (Cards) section if your flow requires the SDK to initiate payments directly. In this model, the SDK handles the payment trigger and communicates downstream to the Hyperswitch server and your chosen Payment Service Providers (PSPs). This path is ideal for supporting dynamic, frontend-driven payment experiences. +Refer to Payments (Cards) section if your flow requires the SDK to initiate payments directly. In this model, the SDK handles the payment trigger and communicates downstream to the Hyperswitch server and your chosen Payment Service Providers (PSPs). This path is ideal for supporting dynamic, frontend-driven payment experiences. {% endhint %}
-#### One-Time Payment Patterns +### One-Time Payment Patterns -##### 1. Instant Payment (Automatic Capture) +#### 1. Instant Payment (Automatic Capture) **Use Case:** Simple, immediate payment processing @@ -35,7 +35,7 @@ Refer to Payments (Cards) section if your flow requires the SDK to initiate pay **Final Status:** `succeeded` -##### 2. Two-Step Manual Capture +#### 2. Two-Step Manual Capture **Use Case:** Deferred capture (e.g., ship before charging) @@ -50,7 +50,7 @@ Refer to Payments (Cards) section if your flow requires the SDK to initiate pay Read more - [here](https://docs.hyperswitch.io/~/revisions/2M8ySHqN3pH3rctBK2zj/about-hyperswitch/payment-suite-1/payments-cards/manual-capture) -##### 3. Fully Decoupled Flow +#### 3. Fully Decoupled Flow **Use Case:** Complex checkout journeys with multiple modification steps. Useful in headless checkout or B2B portals where data is filled progressively. @@ -63,7 +63,7 @@ Read more - [here](https://docs.hyperswitch.io/~/revisions/2M8ySHqN3pH3rctBK2zj/ * **Confirm:** `POST /payments/{payment_id}/confirm` * **Capture:** `POST /payments/{payment_id}/capture` (if manual) -##### 4. 3D Secure Authentication Flow +#### 4. 3D Secure Authentication Flow **Use Case:** Enhanced security with customer authentication @@ -77,9 +77,9 @@ Read more - [here](https://docs.hyperswitch.io/~/revisions/2M8ySHqN3pH3rctBK2zj/ Read more - [link](https://docs.hyperswitch.io/~/revisions/9QlGypixZFcbkq8oGjaF/explore-hyperswitch/workflows/3ds-decision-manager) -#### Recurring payments and Payment storage +### Recurring payments and Payment storage -##### 1. Saving Payment Methods +#### 1. Saving Payment Methods **During Payment Creation:** @@ -87,12 +87,12 @@ Read more - [link](https://docs.hyperswitch.io/~/revisions/9QlGypixZFcbkq8oGjaF/ * Include `customer_id` * **Result:** `payment_method_id` returned on success -##### **Understanding `setup_future_usage`:** +#### **Understanding `setup_future_usage`:** * **`on_session`**: Use when the customer is actively present during the transaction. This is typical for scenarios like saving card details for faster checkouts in subsequent sessions where the customer will still be present to initiate the payment (e.g., card vaulting for e-commerce sites). * **`off_session`**: Use when you intend to charge the customer later without their active involvement at the time of charge. This is suitable for subscriptions, recurring billing, or merchant-initiated transactions (MITs) where the customer has pre-authorized future charges. -##### 2. Using Saved Payment Methods +#### 2. Using Saved Payment Methods
@@ -102,29 +102,29 @@ Read more - [link](https://docs.hyperswitch.io/~/revisions/9QlGypixZFcbkq8oGjaF/ 2. **List:** Get saved cards via `GET /customers/payment_methods` 3. **Confirm:** Use selected `payment_token` in confirm call -#### PCI Compliance and `payment_method_id` +### PCI Compliance and `payment_method_id` Storing `payment_method_id` (which is a token representing the actual payment instrument, which could be a payment token, network token, or payment processor token) significantly reduces your PCI DSS scope. Hyperswitch securely stores the sensitive card details and provides you with this token. While you still need to ensure your systems handle `payment_method_id` and related customer data securely, you avoid the complexities of storing raw card numbers. Always consult with a PCI QSA to understand your specific compliance obligations. -#### Recurring Payment Flows +### Recurring Payment Flows -##### 3. Customer-Initiated Transaction (CIT) Setup +#### 3. Customer-Initiated Transaction (CIT) Setup
Read more - [link](https://docs.hyperswitch.io/~/revisions/j00Urtz9MpwPggJzRCsi/about-hyperswitch/payment-suite-1/payments-cards/recurring-payments) -##### 4. Merchant-Initiated Transaction (MIT) Execution +#### 4. Merchant-Initiated Transaction (MIT) Execution
Read more - [link](https://docs.hyperswitch.io/~/revisions/j00Urtz9MpwPggJzRCsi/about-hyperswitch/payment-suite-1/payments-cards/recurring-payments) -#### Status Flow Summary +### Status Flow Summary
-#### Notes +### Notes * **Terminal States:** `succeeded`, `failed`, `cancelled`, `partially_captured` are terminal states requiring no further action * **Capture Methods:** System supports `automatic` (funds captured immediately), `manual` (funds captured in a separate step), `manual_multiple` (funds captured in multiple partial amounts via separate steps), and `scheduled` (funds captured automatically at a future predefined time) capture methods. diff --git a/about-hyperswitch/payment-suite-1/s2s-vault-flow.md b/about-hyperswitch/payment-suite-1/s2s-vault-flow.md index 99338543..5dff8d1c 100644 --- a/about-hyperswitch/payment-suite-1/s2s-vault-flow.md +++ b/about-hyperswitch/payment-suite-1/s2s-vault-flow.md @@ -1,7 +1,7 @@ --- description: >- - Best for PCI compliant merchants who wants to store the card during initial - checkout phase without charging their customers. + Best for PCI compliant merchants who wants to store the card during initial + checkout phase without charging their customers. hidden: true --- @@ -9,20 +9,18 @@ hidden: true The Payment method SDK allows you to securely collect payment information and give customers the option to save their payment details for future transactions. By vaulting these details during the initial checkout phase. -#### **Key Features** +### **Key Features** * **Full Token Management** – Create, retrieve, update, and delete payment tokens directly from your server. * **PSP and Network Tokenization** – Generate both PSP tokens and network tokens through a single API. -* **Secure Storage** – Store tokens safely in Hyperswitch's Vault. +* **Secure Storage** – Store tokens safely in Juspay Hyperswitch's Vault. * **Reduced Frontend Complexity** – Shift tokenization processes to the backend, minimizing frontend dependencies. -#### Understanding Payment and Vault Flow - - +### Understanding Payment and Vault Flow
-#### **Vaulting :** +### **Vaulting :** **1. Create Customer (Server-Side)** @@ -44,7 +42,7 @@ Hyperswitch receives the request, securely stores the raw card data in the Vault Hyperswitch returns the `payment_method_id` in the response. You can use this payment method ID for future payments for this customer without handling sensitive card data again. -#### **Payment :** +### **Payment :** To charge the customer you will have to call the [create and confirm](https://api-reference.hyperswitch.io/v2/payments/payments--create-and-confirm-intent) API and pass the `payment_method_id` along with `confirm` as `true` diff --git a/about-hyperswitch/payment-suite-1/vault-and-forward.md b/about-hyperswitch/payment-suite-1/vault-and-forward.md index 10ff1dbb..680f7b2e 100644 --- a/about-hyperswitch/payment-suite-1/vault-and-forward.md +++ b/about-hyperswitch/payment-suite-1/vault-and-forward.md @@ -1,7 +1,7 @@ --- description: >- - Best for merchants who do not want to handle card data and want to maintain - their current integration with the processors. + Best for merchants who do not want to handle card data and want to maintain + their current integration with the processors. hidden: true --- @@ -13,15 +13,13 @@ For payments, your backend constructs a request intended for your specific proce This architecture allows you to maintain your legacy backend logic while significantly reducing PCI scope. It is particularly well-suited for scenarios where you plan to keep existing processor integrations. but require the removal of sensitive card data from your internal systems. -#### **Understanding Payment and Vault Flow** +### **Understanding Payment and Vault Flow**
+### Vaulting - -#### Vaulting - -**1. Create Payment Method Session (Server-Side)** The merchant server initiates the flow by calling the Hyperswitch [`Create-payment-method-session`](https://api-reference.hyperswitch.io/v2/payment-method-session/payment-method-session--create#payment-method-session-create) API with the `customer_id`. Hyperswitch responds with a `session_id` and `client_secret`, which are required to authenticate the client-side session. +**1. Create Payment Method Session (Server-Side)** The merchant server initiates the flow by calling the Juspay Hyperswitch [`Create-payment-method-session`](https://api-reference.hyperswitch.io/v2/payment-method-session/payment-method-session--create#payment-method-session-create) API with the `customer_id`. Hyperswitch responds with a `session_id` and `client_secret`, which are required to authenticate the client-side session. **2. Initialize SDK (Client-Side)** The merchant client loads the `HyperLoader.js` script and initializes `window.Hyper` using the Publishable Key. Using the `session_id` and `client_secret`, the SDK creates a Payment Method Management (PMM) group and mounts the specific widget instance to the UI. @@ -29,14 +27,10 @@ This architecture allows you to maintain your legacy backend logic while signifi **4. Retrieve Payment Method ID (Server-Side)** The merchant server calls the "List Payment Methods" API using the `session_id`. Hyperswitch returns a list of payment methods associated with the customer, from which the merchant server selects the appropriate `PM_ID` (Payment Method ID) to use for the transaction. - - -#### Payment +### Payment **Execute Proxy Payment (Server-Side)** The merchant server initiates the payment by sending a request to the [Hyperswitch vault proxy](https://docs.hyperswitch.io/~/revisions/01bZ2maqjwpnmrttix7i/explore-hyperswitch/payments-modules/vault/hyperswitch-vault-pass-through-proxy-payments) endpoint using the `payment_method_id` . The proxy securely replaces the token with the actual card data from the Vault and forwards the request to the Payment Service Provider (PSP), returning the final payment response to the merchant. - - **Integration Documentation :** * [Vault SDK Integration](https://docs.hyperswitch.io/~/revisions/TGn71uwTlQJmyyiYgHpt/explore-hyperswitch/payments-modules/vault/vault-sdk-integration) diff --git a/about-hyperswitch/payment-suite.md b/about-hyperswitch/payment-suite.md index 3d8f809d..96981a71 100644 --- a/about-hyperswitch/payment-suite.md +++ b/about-hyperswitch/payment-suite.md @@ -1,5 +1,5 @@ --- -description: Explore the complete Hyperswitch payment suite including orchestration, checkout experience, and payment operations for unified payment management +description: Explore the complete Juspay Hyperswitch payment suite including orchestration, checkout experience, and payment operations for unified payment management hidden: true noIndex: true icon: suitcase @@ -15,13 +15,13 @@ Hyperswitch provides a open-source, lightweight and full-stack solution to effor
-#### Explore Hyperswitch +### Explore Hyperswitch
Payment OrchestrationPayment orchestration (1).pngpayment-orchestration
Checkout ExperienceCheckouts (1).pngmerchant-controls
Payment OperationsPayment Ops (1).pngaccount-management
*** -##### **Developer Resources** +#### **Developer Resources**
Signup and try a paymenthttps://app.hyperswitch.io/
Integrate with your apphttps://docs.hyperswitch.io/hyperswitch-cloud/integration-guide
API Referencehttps://api-reference.hyperswitch.io/introduction
@@ -31,28 +31,24 @@ Join our [Slack Community](https://inviter.co/hyperswitch-slack) to ask question Prefer direct support? Use our [Contact Us](https://hyperswitch.io/contact-us) page to reach out. {% endhint %} -#### What's Included in the Hyperswitch Payment Suite +### What's Included in the Hyperswitch Payment Suite -##### Payments +#### Payments -
Cover image
Intelligent Payment OrchestrationHyperswitch's Payment Orchestration platform is designed to simplify the complexities of managing multiple PSPs and various payment methods, ensuring optimal performance at every stage of the payment lifecycle.Payment orchestration (1).png
Connectors (Processor Integrations)Integrate with 300+ connectors enabling 300+ payment methods with zero development effort. addConnector.jpg
CheckoutHyperswitch empowers you to deliver a seamless, intuitive, and native checkout experience without compromising transaction authenticity.Checkouts (1).png
Payment LinksSeamlessly integrate into Hyperswitch without writing much code.Payment Links (1).png
Control CentreHyperswitch Control Center is a single interface that all your teams will be required to use for all payment operations  analytics use cases. This provides more power to your team for managing payments seamlessly.customization.jpg
+
Cover image
Intelligent Payment OrchestrationHyperswitch's Payment Orchestration platform is designed to simplify the complexities of managing multiple PSPs and various payment methods, ensuring optimal performance at every stage of the payment lifecycle.Payment orchestration (1).png
Connectors (Processor Integrations)Integrate with 300+ connectors enabling 300+ payment methods with zero development effort. addConnector.jpg
CheckoutHyperswitch empowers you to deliver a seamless, intuitive, and native checkout experience without compromising transaction authenticity.Checkouts (1).png
Payment LinksSeamlessly integrate into Hyperswitch without writing much code.Payment Links (1).png
Control CentreHyperswitch Control Center is a single interface that all your teams will be required to use for all payment operations  analytics use cases. This provides more power to your team for managing payments seamlessly.customization.jpg
- - -#### Advance Payment Capabilities +### Advance Payment Capabilities
Cover image
Intelligent RoutingDynamically switching between processors in real-time for every transaction to optimally maximise first attempt auth rates and minimise processing cost.
3DS Intelligence EngineAdvanced, data-driven decisioning system that enables merchants to optimize their authentication workflows.3D Decision manager.png
Smart RetriesSmart retry is a Hyperswitch feature to improve the payment success rates in a single or multi-processor setup.smart Retries.png
SurchargeHyperswitch Surcharge feature allows the merchant to configure advanced rules using various payment parameters such as amount, currency etc., to apply surcharges to payments.
- - -#### Tokenization and Management +### Tokenization and Management
Cover image
VaultHyperswitch Vault Service is a standalone vault that allows you to tokenize and secure your customers' card data in our PCI-compliant vault without having to use our payment solutions.testCred.jpg
Vault SDKThe Hyperswitch Vault/Payment Methods Management SDK provides a secure solution for merchants to handle and store payment information without the burden of PCI DSS compliance requirements.
Payment Method Management SDKThe Hyperswitch Payment Methods Management SDK provides a secure solution to your customer to handle and store payment information without the burden of PCI DSS compliance requirements.Payment data.png
-#### Revenue +### Revenue
Cover image
Cost ObservabilityHyperswitch Cost Observability solves this problem by transforming unstructured payment fee data from multiple sources into comprehensive insights
Revenue RecoveryRevenue Recovery delivers an uplift in authorization rates, helping businesses reduce churn, recover lost revenue, and maximize customer lifetime value.
ReconciliationPowerful, accounting-grade ledger, applying the precision of double-entry bookkeeping to your entire payment flow.Reconciliation (1).png
-#### Enterprise and Marketplace +### Enterprise and Marketplace -
Cover image
Multi-TenancyMulti-tenancy in Hyperswitch enables each of it's tenants to have customised offering of the Hyperswitch stack without the overhead of software and infrastructure maintenance.Enterprise (1).png
Multi hierarchy SetupHyperswitch allows you to choose different account structures based on your business needs. Allows you to accept payments at the business level, business unit level, or allow your sub-merchants to accept payments on their own.Multiple account  profile management.png
+
Cover image
Multi-TenancyMulti-tenancy in Hyperswitch enables each of it's tenants to have customised offering of the Hyperswitch stack without the overhead of software and infrastructure maintenance.Enterprise (1).png
Multi hierarchy SetupHyperswitch allows you to choose different account structures based on your business needs. Allows you to accept payments at the business level, business unit level, or allow your sub-merchants to accept payments on their own.Multiple account  profile management.png
diff --git a/about-hyperswitch/payment-suite/README.md b/about-hyperswitch/payment-suite/README.md index ffc29e34..5caca996 100644 --- a/about-hyperswitch/payment-suite/README.md +++ b/about-hyperswitch/payment-suite/README.md @@ -5,111 +5,104 @@ icon: container-storage # Payments Suite -Hyperswitch is built for teams that want engineering-grade control over payments. +Juspay Hyperswitch is built for teams that want engineering-grade control over payments. To simplify architectural decisions, the ecosystem can be viewed as four independent building blocks.\ By defining ownership of each block — Hyperswitch-managed, self-hosted, or third-party — you can design an architecture aligned with your compliance posture, performance requirements, and internal engineering capabilities. - - ### **The Four Core Components** -#### **The SDK (Frontend) :** +### **The SDK (Frontend) :** The entry point for your payment flow. It resides in your frontend and is responsible for securely capturing sensitive payment information. -#### **Intelligent Routing & Orchestration (Backend) :** +### **Intelligent Routing & Orchestration (Backend) :** The core of the operation. It manages the payment lifecycle, executes routing logic, and handles post-payment operations like refunds. -#### **Acquirer & Processor Connectivity (Connectors) :** +### **Acquirer & Processor Connectivity (Connectors) :** The actual pipelines that translates the transaction (e.g., Stripe, Adyen, Worldpay). -#### **Vault (Card Data Storage) :** +### **Vault (Card Data Storage) :** The secure locker for sensitive card data to enable "One-Click" recurring payments without the user re-entering details. - - Each Component can be handled by Hyperswitch, managed or self-deployed by your own team, or even sourced from a third-party provider e.g. Vault ([reference](https://docs.hyperswitch.io/~/revisions/wA01t1OV6BPUckMZ2Pvg/explore-hyperswitch/workflows/vault/connect-external-vaults-to-hyperswitch-orchestration)) *** ### Integration Architecture -With the components defined, the next step is to select your integration architecture. This choice hinges on a single question: Who controls the payment execution ? +With the components defined, the next step is to select your integration architecture. This choice hinges on a single question: Who controls the payment execution ? Choose the integration method that best aligns with your payment flow requirements: -#### Integration Model 1: Client-Side SDK Payments +### Integration Model 1: Client-Side SDK Payments -(Tokenize Post-Payment | SDK-Initiated Execution) + (Tokenize Post-Payment | SDK-Initiated Execution) -#### When to Choose This Model +### When to Choose This Model * You want dynamic, frontend-driven payment experiences * You prefer minimal backend orchestration logic * You want SDK-triggered payment confirmation * You are optimizing for rapid checkout implementation -#### High-level Flow +### High-level Flow 1. Merchant will call the [/payments](https://api-reference.hyperswitch.io/v1/payments/payments--create) API and load the [Payment SDK](https://docs.hyperswitch.io/explore-hyperswitch/payment-experience/payment). 2. SDK securely collects payment details. 3. SDK triggers payment confirmation. 4. SDK communicates with Hyperswitch backend. 5. Hyperswitch: - * Applies [routing logic](https://docs.hyperswitch.io/~/revisions/iPtyU5MKxmgIsGywgRhI/explore-hyperswitch/workflows/intelligent-routing) - * Sends request to configured PSP - * Manages authorization/capture - * Returns final payment status + * Applies [routing logic](https://docs.hyperswitch.io/~/revisions/iPtyU5MKxmgIsGywgRhI/explore-hyperswitch/workflows/intelligent-routing) + * Sends request to configured PSP + * Manages authorization/capture + * Returns final payment status *** -#### Integration Model 2: Server-to-Server (S2S) Payments +### Integration Model 2: Server-to-Server (S2S) Payments -(Tokenize Pre-Payment | Backend-Controlled Execution) + (Tokenize Pre-Payment | Backend-Controlled Execution) -#### When to Choose This Model +### When to Choose This Model * You want granular control over transaction timing * You require backend-driven orchestration logic * You want to tokenize credentials before execution * You prefer decoupling vaulting from transaction processing -#### High-level Flow +### High-level Flow **Tokenisze Card :** * Tokenize payment credentials using - [Vault SDK](https://docs.hyperswitch.io/explore-hyperswitch/payment-method/web) or backend call to [/payment-methods](https://api-reference.hyperswitch.io/v2/payment-methods/payment-method--create-v1) -* Hyperswitch securely stores the credential and returns a reusable identifier - `payment_method_id`. - - +* Hyperswitch securely stores the credential and returns a reusable identifier - `payment_method_id`. **Trigger Payment Execution :** -* Option A: Process via Hyperswitch Orchestration by calling /payments API. - - * Use this option if you want Hyperswitch to: +* Option A: Process via Hyperswitch Orchestration by calling /payments API. - * Apply [routing logic](https://docs.hyperswitch.io/~/revisions/iPtyU5MKxmgIsGywgRhI/explore-hyperswitch/workflows/intelligent-routing) - * Select the optimal connector - * Manage [retries](https://docs.hyperswitch.io/~/revisions/iPtyU5MKxmgIsGywgRhI/explore-hyperswitch/workflows/smart-retries) and failover - * Handle authorization and capture lifecycle + * Use this option if you want Hyperswitch to: - This is the recommended model for merchants adopting Hyperswitch orchestration. + * Apply [routing logic](https://docs.hyperswitch.io/~/revisions/iPtyU5MKxmgIsGywgRhI/explore-hyperswitch/workflows/intelligent-routing) + * Select the optimal connector + * Manage [retries](https://docs.hyperswitch.io/~/revisions/iPtyU5MKxmgIsGywgRhI/explore-hyperswitch/workflows/smart-retries) and failover + * Handle authorization and capture lifecycle + This is the recommended model for merchants adopting Hyperswitch orchestration. * Option B: Process via Proxy API by calling [/proxy](https://docs.hyperswitch.io/~/revisions/wbGQKlHTQ8NT2yPUGcD2/about-hyperswitch/payment-suite-1/payment-method-card/proxy) API. - * Use this option if: + * Use this option if: - * You do not want to change your existing PSP integration immediately - * You want Hyperswitch to act as a passthrough layer - * You are incrementally migrating to full orchestration + * You do not want to change your existing PSP integration immediately + * You want Hyperswitch to act as a passthrough layer + * You are incrementally migrating to full orchestration - In this mode: + In this mode: - * Your existing integration contract remains unchanged - * Hyperswitch forwards requests to the configured processor - * You can progressively enable routing and orchestration features + * Your existing integration contract remains unchanged + * Hyperswitch forwards requests to the configured processor + * You can progressively enable routing and orchestration features diff --git a/about-hyperswitch/payments-modules/README.md b/about-hyperswitch/payments-modules/README.md index 26008ee3..87716fe5 100644 --- a/about-hyperswitch/payments-modules/README.md +++ b/about-hyperswitch/payments-modules/README.md @@ -5,24 +5,24 @@ icon: diamonds-4 # Payments Modules -Hyperswitch offers a **modular, open-source payments infrastructure** designed for flexibility and control. Apart from our Payment Suite offering, this solution allows businesses to **pick and integrate only the modules they need** on top of their existing payment stack without unnecessary complexity or vendor lock-in. +Juspay Hyperswitch offers a **modular, open-source payments infrastructure** designed for flexibility and control. Apart from our Payment Suite offering, this solution allows businesses to **pick and integrate only the modules they need** on top of their existing payment stack without unnecessary complexity or vendor lock-in. Each module is **independent and purpose-built** to optimize different aspects of payment processing:
Cost observabilityai-powered-cost-observability
Revenue recoveryrevenue-recovery.md
Vaultvault
Intelligent routingintelligent-routing
Reconciliationreconciliation
Alternate payment methodsenable-alternate-payment-method-widgets
1. **Cost observability**\ - It is an advanced observability tool for payment cost optimization. It empowers businesses to uncover hidden cost-saving opportunities, review fees, downgrades & penalties, optimize processing strategies, and detect anomalies-all through a self-serve dashboard designed to Audit, Observe and Optimize payments costs. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/account-management/analytics-and-operations/ai-powered-cost-observability) + It is an advanced observability tool for payment cost optimization. It empowers businesses to uncover hidden cost-saving opportunities, review fees, downgrades & penalties, optimize processing strategies, and detect anomalies-all through a self-serve dashboard designed to Audit, Observe and Optimize payments costs. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/account-management/analytics-and-operations/ai-powered-cost-observability) 2. **Revenue recovery**\ - It tackles passive churn by optimizing recurring payments with intelligent retry strategies tailored to diverse parameters like card bin, ticket size, region, payment method & 15 more. It integrates seamlessly with existing payment stacks and boosts recurring success rates while reducing penalties and operational complexities. It focuses on - Ease of integration, transparency of payment attempts and control - kind of retry algorithm, penalty budget, retry split and more. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/payment-flows-and-management/subscriptions/revenue-recovery) + It tackles passive churn by optimizing recurring payments with intelligent retry strategies tailored to diverse parameters like card bin, ticket size, region, payment method & 15 more. It integrates seamlessly with existing payment stacks and boosts recurring success rates while reducing penalties and operational complexities. It focuses on - Ease of integration, transparency of payment attempts and control - kind of retry algorithm, penalty budget, retry split and more. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/payment-flows-and-management/subscriptions/revenue-recovery) 3. **Vault**\ - Payment Methods and Vaulting Service to securely store tokens, bank & wallet credentials and raw card details, ensuring data safety and compliance. It provides a unified view of all user-linked payment methods, enabling efficient management and seamless transaction experience for repeat users. [Read more](../../explore-hyperswitch/workflows/vault/) + Payment Methods and Vaulting Service to securely store tokens, bank & wallet credentials and raw card details, ensuring data safety and compliance. It provides a unified view of all user-linked payment methods, enabling efficient management and seamless transaction experience for repeat users. [Read more](../../explore-hyperswitch/workflows/vault/) 4. **Intelligent routing**\ - It maximizes First Attempt Authorization Rate (FAAR) by dynamically selecting the PSP with the highest auth rate, minimizing failures and reducing retries. It proactively prevents payment processor downtime impact, avoids excessive retry penalties, and eliminates unnecessary latency, ensuring a seamless payment experience. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/payment-flows-and-management/smart-router/intelligent-routing) + It maximizes First Attempt Authorization Rate (FAAR) by dynamically selecting the PSP with the highest auth rate, minimizing failures and reducing retries. It proactively prevents payment processor downtime impact, avoids excessive retry penalties, and eliminates unnecessary latency, ensuring a seamless payment experience. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/payment-flows-and-management/smart-router/intelligent-routing) 5. **Reconciliation**\ - Simplify payment operations with a unified reconciliation framework for 2-way or 3-way reconciliation, with automated data fetching from multiple processors and banks. This module reduces manual effort, minimizes errors, and provides clear visibility into payment data with features like - back-date and staggered recon, output customization and more. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/account-management/reconciliation) + Simplify payment operations with a unified reconciliation framework for 2-way or 3-way reconciliation, with automated data fetching from multiple processors and banks. This module reduces manual effort, minimizes errors, and provides clear visibility into payment data with features like - back-date and staggered recon, output customization and more. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/account-management/reconciliation) 6. **Alternate payment methods**\ - Embeddable payment buttons for seamless one-click checkout with alternate payment methods like PayPal, Apple Pay, Google Pay, Samsung Pay, Pay by Bank or BNPL providers like Klarna. The widget routes the transaction independently and dynamically to one or more connected PSPs, maximizing conversions. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/merchant-controls/enable-alternate-payment-method-widgets) + Embeddable payment buttons for seamless one-click checkout with alternate payment methods like PayPal, Apple Pay, Google Pay, Samsung Pay, Pay by Bank or BNPL providers like Klarna. The widget routes the transaction independently and dynamically to one or more connected PSPs, maximizing conversions. [Read more](https://docs.hyperswitch.io/explore-hyperswitch/merchant-controls/enable-alternate-payment-method-widgets) And more coming soon ... diff --git a/about-hyperswitch/roadmap/README.md b/about-hyperswitch/roadmap/README.md index 9e77b581..a29abe56 100644 --- a/about-hyperswitch/roadmap/README.md +++ b/about-hyperswitch/roadmap/README.md @@ -27,7 +27,7 @@ Before the beginning of every quarter we come together to develop the next roadm **Vault** -* **Guest checkout tokenization** – Token creation without customer creation in Hyperswitch, enabling secure and PCI compliant handling of guest one time and repeat transactions, with flexibility to map tokens to merchant owned identifiers +* **Guest checkout tokenization** – Token creation without customer creation in Juspay Hyperswitch, enabling secure and PCI compliant handling of guest one time and repeat transactions, with flexibility to map tokens to merchant owned identifiers * **Volatile tokenization** – Support for time bound temporary tokens for PAN and network token flows, enabling secure session based authorizations and one time payment experiences without long term vault storage **Revenue recovery**\ @@ -55,7 +55,7 @@ Last year, Hyperswitch was made more modular to provide businesses with focused ### Roadmap -#### Core Orchestration +### Core Orchestration **Platform Managed Payments** @@ -77,7 +77,7 @@ We plan to enable Hyperswitch to act as a relay to orchestrate incremental and p We plan to support installment-based payments across supported payment methods, enabling merchants to offer flexible payment options without changing their orchestration setup. -#### Connectors +### Connectors **New Integrations** @@ -89,7 +89,7 @@ We also plan to enhance existing integrations to expand payment method coverage [Learn more about the existing Connectors supported in Hyperswitch here.](https://docs.hyperswitch.io/explore-hyperswitch/connectors) -#### Vault +### Vault **Multi Vault Support** @@ -113,7 +113,7 @@ We plan to add analytics, audit trails, and observability capabilities for the V [Learn more about the existing Vault Services and workflows here.](https://docs.hyperswitch.io/about-hyperswitch/payments-modules/vault) -#### Authentication and Checkout Experience +### Authentication and Checkout Experience **SDK Accessibility Enhancements** @@ -145,7 +145,7 @@ We plan to support custom in SDK messaging so merchants can configure and displa [Learn more about the existing Authentication and Checkout Experience capabilities here.](https://docs.hyperswitch.io/explore-hyperswitch/merchant-controls) -#### Revenue Recovery +### Revenue Recovery **Advanced Retry Logic for Hard Declines** @@ -161,7 +161,7 @@ We plan to support using self-hosted orchestration with Juspay-hosted revenue re [Learn more about the existing Revenue Recovery features and workflows here.](https://docs.hyperswitch.io/about-hyperswitch/payments-modules/revenue-recovery) -#### Reconciliation +### Reconciliation **Tolerance & Aging** @@ -171,7 +171,7 @@ Aging provides visibility into unmatched transactions and enables configurable t [Learn more about the existing Reconciliation features and workflows here](https://docs.hyperswitch.io/about-hyperswitch/payments-modules/reconciliation). -#### Control Centre +### Control Centre **Developer Observability & Self-Service Diagnostics** diff --git a/about-hyperswitch/roadmap/previous-roadmap-q3-2025.md b/about-hyperswitch/roadmap/previous-roadmap-q3-2025.md index 0f4c9336..2f85973b 100644 --- a/about-hyperswitch/roadmap/previous-roadmap-q3-2025.md +++ b/about-hyperswitch/roadmap/previous-roadmap-q3-2025.md @@ -21,7 +21,7 @@ Our core values have pretty much remained the same since the early days and here ### Themes for Roadmap -Earlier this year, Hyperswitch was made more modular to provide businesses with focused solutions to specific payment-related problems. Hence, our roadmap, starting this quarter, will be published under each module. A summary of the 8 product modules is provided below : +Earlier this year, Juspay Hyperswitch was made more modular to provide businesses with focused solutions to specific payment-related problems. Hence, our roadmap, starting this quarter, will be published under each module. A summary of the 8 product modules is provided below : 1. **Core Orchestration:** The core module supporting workflows unifying various connector 2. **Vault:** Simplifying PCI compliance and data privacy regulations through a standalone Card Vault @@ -34,7 +34,7 @@ Earlier this year, Hyperswitch was made more modular to provide businesses with ### Roadmap -#### **Core Orchestration** +### **Core Orchestration** * Expand Hyperswitch with new payment connector integrations including Worldpay Vantiv, Payload, Dwolla, Bluecode, Checkbook.io, Trust Payments, Nordea, and Silverflow * Extend support for additional payment methods across existing integrations such as Multisafe, Airwallex, Braintree, and Fiserv @@ -43,34 +43,34 @@ Earlier this year, Hyperswitch was made more modular to provide businesses with * Asynchronous chargeback handling for connectors without webhook support * L2 and L3 card data enablement across key acquirers -#### **Vault** +### **Vault** * Standalone Network Tokenization service for SaaS merchants -#### **Authentication** +### **Authentication** * Improve authentication rates and user experience with EMVCo certified Juspay 3DS Server and Juspay 3DS SDK * Authentication Observability to provide analytics and insights to merchants with tightly coupled Acquirer 3DS for better authentication and authorization results. -#### **Revenue Recovery** +### **Revenue Recovery** * Open-source revenue recovery: Merchants will be able to self-deploy Hyperswitch's integrations and intelligence services onto their own stack * Multi-card retries: The system will intelligently utilize payment methods already present with the customer to perform retries on a given invoice * Intelligent invoice retrying: Automatically retries invoices declined due to hard decline error codes, within the retry budget specified by the merchant * Custom subscription support: Enables integration with the merchant's in-house subscription management platform to recover failed payments -#### **Intelligent Routing** +### **Intelligent Routing** * Audit Trail and observability dashboard: Allows monitoring of performance across various routing modules * Extension of Least Cost Routing to wallet payments: Includes Apple Pay and Google Pay -#### **Cost Observability** +### **Cost Observability** * Smarter Fee Attribution Engine: Enhancing our system's ability to accurately derive fee names from fragmented or ambiguous reports, fee rates and attribute costs across key dimensions such as card variants, acquirers, and funding sources * Conversational AI Interface: Introducing an intuitive, AI-powered chat experience that allows users to explore their payment processing fees through a rich, context-aware interface, making cost observability more interactive, insightful, and user-friendly * Expanded Acquirer Coverage: Adding support for five or more new acquirer report formats, enabling broader compatibility and faster onboarding for merchants working with a variety of providers -##### Reconciliation +#### Reconciliation * N‑way ingestion & transformation: implement backend‑configured pipelines for any mix of OMS, PSP and bank asources to define normalization and transformation rules * Reconciliation summary views: display real‑time n‑way match rates, exception counts and trend charts in dashboard widgets, with click‑through to transaction‑ vs. entry‑level drill‑downs and one‑click resolution actions. diff --git a/about-hyperswitch/roadmap/previous-roadmap-q4-2025.md b/about-hyperswitch/roadmap/previous-roadmap-q4-2025.md index 90aa02bb..d1ebc04e 100644 --- a/about-hyperswitch/roadmap/previous-roadmap-q4-2025.md +++ b/about-hyperswitch/roadmap/previous-roadmap-q4-2025.md @@ -14,13 +14,13 @@ Before the beginning of every quarter we come together to develop the next roadm ### Recap of Q3 2025 * **Connectors** - * **New PSP integrations** - Worldpay Vantiv, Payload, Dwolla, Bluecode, Checkbook, Trust Payments, Nordea, and Silverflow - * **Integration enhancements** - Multisafe, Airwallex, Braintree, and Fiserv - * **New category of integration** - Support for subscription management providers to augment the plan management and record-keeping capabilities of the subscription engine with payment orchestration - * **Feature depth** - L2/L3 data standardization across PSPs, support merchant decryption and decrypted payload for Apple Pay and Google Pay, return MAC codes in API response, chargeback support for PSPs with no webhook support, and MIT category fields + * **New PSP integrations** - Worldpay Vantiv, Payload, Dwolla, Bluecode, Checkbook, Trust Payments, Nordea, and Silverflow + * **Integration enhancements** - Multisafe, Airwallex, Braintree, and Fiserv + * **New category of integration** - Support for subscription management providers to augment the plan management and record-keeping capabilities of the subscription engine with payment orchestration + * **Feature depth** - L2/L3 data standardization across PSPs, support merchant decryption and decrypted payload for Apple Pay and Google Pay, return MAC codes in API response, chargeback support for PSPs with no webhook support, and MIT category fields * **Core orchestration** - Support for over-capture, extended authorization, and manual/user-triggered retries * **Standalone Network Tokenization** Service with support for Visa, Mastercard, and Amex\ - Standalone EMVCo-certified Juspay 3DS Server and 3DS SDK + Standalone EMVCo-certified Juspay 3DS Server and 3DS SDK * **Revenue recovery** - New capabilities to handle partial capture, support in-house billing engines, invoice queuing or grouping of all pending invoices, hard decline smart retry * **Intelligent routing** analytics added to offer real-time insights into transaction flow and gateway performance * **Reconciliation** - New capabilities to support transaction-level audit logs to ensure every transaction can be traced from initiation to settlement, strengthening compliance and operational accountability @@ -37,7 +37,7 @@ Our core values have pretty much remained the same since the early days and here ### Themes for Roadmap -Earlier this year, Hyperswitch was made more modular to provide businesses with focused solutions to specific payment-related problems. Hence, our roadmap, starting this quarter, will be published under each module. A summary of the 8 product modules is provided below : +Earlier this year, Juspay Hyperswitch was made more modular to provide businesses with focused solutions to specific payment-related problems. Hence, our roadmap, starting this quarter, will be published under each module. A summary of the 8 product modules is provided below : 1. **Core Orchestration:** The core module supporting workflows unifying various connector 2. **Vault:** Simplifying PCI compliance and data privacy regulations through a standalone Card Vault @@ -49,66 +49,64 @@ Earlier this year, Hyperswitch was made more modular to provide businesses with ### Roadmap -##### **Core Orchestration and Connectors** +#### **Core Orchestration and Connectors** * **Connectors**\ - We plan to expand connector coverage with new integrations including - * **New integrations:** Gigadat (Interac e-transfer), Loonio (Interac e-transfer), Tesouro (Cards,Applepay,Googlepay), Paysafe (Cards, Applepay, Skrill, Interac e-transfer, Paysafecards), Finix (Cards, Applepay, Googlepay) + We plan to expand connector coverage with new integrations including + * **New integrations:** Gigadat (Interac e-transfer), Loonio (Interac e-transfer), Tesouro (Cards,Applepay,Googlepay), Paysafe (Cards, Applepay, Skrill, Interac e-transfer, Paysafecards), Finix (Cards, Applepay, Googlepay) * **Core Orchestration** - * We plan to introduce split-payment support for gift cards, enabling combined payments within a single transaction for greater flexibility across customer use cases. + * We plan to introduce split-payment support for gift cards, enabling combined payments within a single transaction for greater flexibility across customer use cases. * **Improve Auth rate** - * **Error Code Enhancements** + * **Error Code Enhancements** - We plan to enhance our error-handling framework to improve visibility and precision in transaction outcomes. + We plan to enhance our error-handling framework to improve visibility and precision in transaction outcomes. - * **Issuer Error Codes in GSM Table**: Issuer-specific error codes will be added to the GSM (Gateway Status Mapping) table to improve accuracy in mapping responses. These will be leveraged to make better retry decisions during payment flows, helping merchants reduce unnecessary retries and improve approval rates. + * **Issuer Error Codes in GSM Table**: Issuer-specific error codes will be added to the GSM (Gateway Status Mapping) table to improve accuracy in mapping responses. These will be leveraged to make better retry decisions during payment flows, helping merchants reduce unnecessary retries and improve approval rates. - **Unified Error Codes and User-Facing Messages**: We will expand the existing unified error code system to generate clearer, user-focused error messages. This ensures consistency in how payment failures are communicated across channels, improving transparency for both merchants and end users. -* **Real-Time Payment Method Eligibility Checks** + **Unified Error Codes and User-Facing Messages**: We will expand the existing unified error code system to generate clearer, user-focused error messages. This ensures consistency in how payment failures are communicated across channels, improving transparency for both merchants and end users. +* **Real-Time Payment Method Eligibility Checks** - We plan to introduce real-time eligibility validation for payment methods during checkout. This will include: + We plan to introduce real-time eligibility validation for payment methods during checkout. This will include: - * **Risk-Based Eligibility Checkpoints**: Adding merchant-level risk evaluation before payment confirmation. This will allow merchants to assess potential transaction risks in real time, reducing fraud exposure and improving overall authorization performance. + * **Risk-Based Eligibility Checkpoints**: Adding merchant-level risk evaluation before payment confirmation. This will allow merchants to assess potential transaction risks in real time, reducing fraud exposure and improving overall authorization performance. _Learn more about the existing Core Orchestration and Connectors features and workflows_ [_here_](../../explore-hyperswitch/connectors/) -##### **Vault** +#### **Vault** -* **Guest Checkout Tokenization in Hyperswitch Vault** +* **Guest Checkout Tokenization in Hyperswitch Vault** - We plan to extend our vault capabilities to support guest checkout tokenization. This will allow merchants to create tokens without generating a customer ID in Hyperswitch, enabling secure and PCI-compliant handling of one-time or repeat transactions. Merchants will also have the flexibility to map these tokens to their own unique identifiers as needed. -* **Volatile Tokenization for PAN and Network Tokens** + We plan to extend our vault capabilities to support guest checkout tokenization. This will allow merchants to create tokens without generating a customer ID in Hyperswitch, enabling secure and PCI-compliant handling of one-time or repeat transactions. Merchants will also have the flexibility to map these tokens to their own unique identifiers as needed. +* **Volatile Tokenization for PAN and Network Tokens** - We plan to add support for volatile tokenization, allowing merchants to generate temporary tokens valid for a limited time. This will be particularly useful for transient payment flows such as session-based authorizations or one-time payments, providing enhanced flexibility and security without long-term storage in the vault. -* **Proxy API for Vault-Only Integrations** + We plan to add support for volatile tokenization, allowing merchants to generate temporary tokens valid for a limited time. This will be particularly useful for transient payment flows such as session-based authorizations or one-time payments, providing enhanced flexibility and security without long-term storage in the vault. +* **Proxy API for Vault-Only Integrations** - We are expanding the Proxy API to support merchants who choose to integrate solely with Hyperswitch Vault services. This will allow merchants to pass a card token in their requests, which Hyperswitch will substitute with the actual card details before routing the call to the target connector. + We are expanding the Proxy API to support merchants who choose to integrate solely with Hyperswitch Vault services. This will allow merchants to pass a card token in their requests, which Hyperswitch will substitute with the actual card details before routing the call to the target connector. _Learn more about the existing Vault Services and workflows_ [_here_](https://docs.hyperswitch.io/about-hyperswitch/payments-modules/vault) -##### **Authentication and Checkout Experience** +#### **Authentication and Checkout Experience** -* **Authorization Uplift** +* **Authorization Uplift** - We are introducing a set of enhancements aimed at improving authorization success rates and overall checkout reliability. These features are designed to create a more adaptive, resilient, and insight-driven payment experience: + We are introducing a set of enhancements aimed at improving authorization success rates and overall checkout reliability. These features are designed to create a more adaptive, resilient, and insight-driven payment experience: -##### **Revenue Recovery** +#### **Revenue Recovery** * **Advanced retry logic for Hard declines**\ - The system intelligently identifies and retries transactions that were falsely marked as hard declines. This feature aims to recover transactions that were previously considered unrecoverable. Merchants will be able to manage these retries by setting a configurable budget that limits the number retry attempts. + The system intelligently identifies and retries transactions that were falsely marked as hard declines. This feature aims to recover transactions that were previously considered unrecoverable. Merchants will be able to manage these retries by setting a configurable budget that limits the number retry attempts. * **Account Updater:**\ - The system will automatically refresh stored card credentials when a customer's card information changes. This capability ensures continuity in payment processing by updating expired, replaced, or reissued cards in real time. As a result, payment failures caused by expired, closed, or lost/stolen cards can be effectively recovered. + The system will automatically refresh stored card credentials when a customer's card information changes. This capability ensures continuity in payment processing by updating expired, replaced, or reissued cards in real time. As a result, payment failures caused by expired, closed, or lost/stolen cards can be effectively recovered. _Learn more about the existing Revenue Recovery features and workflows_ [_here_](../../explore-hyperswitch/payments-modules/revenue-recovery.md) -##### **Reconciliation** +#### **Reconciliation** * **Rule Types Expansion**\ - Support for 1:many and many:1 rule types to enable flexible matching across split, aggregated, and multi-attempt transaction flows + Support for 1:many and many:1 rule types to enable flexible matching across split, aggregated, and multi-attempt transaction flows * **Support for Lumpsum Reconciliation**\ - Enables matching aggregated payouts or bulk settlement files against multiple underlying transactions. This helps reconcile scenarios where processors or banks provide only a consolidated amount, allowing the system to auto-distribute, validate, and highlight variances at both the lump and individual transaction levels - - + Enables matching aggregated payouts or bulk settlement files against multiple underlying transactions. This helps reconcile scenarios where processors or banks provide only a consolidated amount, allowing the system to auto-distribute, validate, and highlight variances at both the lump and individual transaction levels **Want to contribute to the roadmap?** diff --git a/about-hyperswitch/roadmap/roadmap-q1-2024.md b/about-hyperswitch/roadmap/roadmap-q1-2024.md index 1be5cfaf..d34b5305 100644 --- a/about-hyperswitch/roadmap/roadmap-q1-2024.md +++ b/about-hyperswitch/roadmap/roadmap-q1-2024.md @@ -11,7 +11,7 @@ Before the beginning of every quarter we come together to develop the next roadm 👂And as always, we listen to your feedback and adapt our plans if needed. -#### Core Values +### Core Values Our core values have pretty much remained the same since the early days and here they are: @@ -21,42 +21,42 @@ Our core values have pretty much remained the same since the early days and here
LegendDescription
🟩Feature completed
🟧Feature in progress
🟥Work not started
💪Stretch target
🚛Backlog feature from Q4 2023
-#### Roadmap +### Roadmap -##### Community Feature Requests +#### Community Feature Requests * 🟩 Card vault enhancements to support more use cases - enable vaulting before payment, card fingerprinting * 🟩 Enhance MIT payments (Merchant Initiated Transactions) to accept `raw card data` and `network_reference_id.` This will allow for payment gateway agnostic MIT payments * _(removed from the Q1 roadmap)_ Enabling card transactions using `payment gateway token` to ensure business continuity for merchants with card vaulted with payment gateways -* 🟩 New connector and payment method Integrations +* 🟩 New connector and payment method Integrations - * 🟩 Place2Pay - * 🟩 Billwerk - * 🟩 Pix and Boleto via Adyen + * 🟩 Place2Pay + * 🟩 Billwerk + * 🟩 Pix and Boleto via Adyen - _(the list of connectors will keep expanding as we receive more requests from the community!!!)_ + _(the list of connectors will keep expanding as we receive more requests from the community!!!)_ -##### Developer Experience +#### Developer Experience * 🚛 Code restructuring for enhancing readability and ease of contributions * 🟩 Helm charts enhancement to enable easy installation on Azure, Google Cloud and within existing Kubernetes clusters * 🟩 Helm charts will support installation of `hyperswitch-card-vault` -* 🚛 PCI Software Security Standard (S3) certification. At the moment, Juspay Hyperswitch application is battle tested for PCI L1 compliance. While PCI Software Security Standard (S3) is not mandatory for Hyperswitch related functionalities, we are undertaking the certification to further augment our security standards -* 🟩Adding more developer help videos and improving developer documentations for Hyperswitch features, components and usage +* 🚛 PCI Software Security Standard (S3) certification. At the moment, Juspay Hyperswitch application is battle tested for PCI L1 compliance. While PCI Software Security Standard (S3) is not mandatory for Hyperswitch related functionalities, we are undertaking the certification to further augment our security standards +* 🟩Adding more developer help videos and improving developer documentations for Juspay Hyperswitch features, components and usage * 💪🚛 Open sourcing the Native Unified Checkout SDK (Android and iOS) * 🟩 Diagnostics tool to determine health of your on-cloud Hyperswitch stack setup -##### Reduce Payment Costs +#### Reduce Payment Costs * 🟩 Enabling surcharge for specific payment methods to promote low cost payment methods * 🚛 🟩 Hyperswitch API supports for Plaid for ACH account verification -##### Improving Payment Authorization Rates +#### Improving Payment Authorization Rates * 🟩Decoupled 3DS authentication and authorization using EMVCo certified 3DS connectors, for improving payment authorization rates and customer experience. * 🚛 Paypal Vault flows for improving repeat user payment experience -##### Reducing Payment Operations +#### Reducing Payment Operations * 🟩 Enhanced Audit trail visibility for Payments, Refunds, Disputes on Hyperswitch Control Centre * 🟩 Support for Hosted Checkout Page on Web @@ -66,6 +66,6 @@ Our core values have pretty much remained the same since the early days and here * 🟩 Hyperswitch Control Centre will allow to customize payment methods at country and currency * 🟩 Create custom roles for Identity and Access Management -#### **Want to contribute to the roadmap?** +### **Want to contribute to the roadmap?** [Submit an idea or feature request here](https://github.com/juspay/hyperswitch/discussions/categories/ideas-feature-requests) with a simple explanation on `What?` and `Why?` included. diff --git a/about-hyperswitch/roadmap/roadmap-q1-2025.md b/about-hyperswitch/roadmap/roadmap-q1-2025.md index 44d7e016..cfcc6679 100644 --- a/about-hyperswitch/roadmap/roadmap-q1-2025.md +++ b/about-hyperswitch/roadmap/roadmap-q1-2025.md @@ -19,17 +19,17 @@ Before the beginning of every quarter we come together to develop the next roadm * [Enablement of guest checkout flow with Click to Pay](https://docs.hyperswitch.io/explore-hyperswitch/merchant-controls/click-to-pay#easier-and-customizable-integration) * [Pass through Split payments through Stripe Connect and Adyen Platforms](https://docs.hyperswitch.io/explore-hyperswitch/payment-flows-and-management/split-payments) * [New connector and payment method integrations](https://hyperswitch.io/pm-list) - * Nexixpay (Cards) - * Fiuu (Duitnow QR, Apple Pay, Google Pay) - * Cybersource (Paze Wallet, Samsung Pay) - * Bankofamerica (Samsung Pay) - * Novalnet (Paypal, Google Pay) - * Paypal Vaulting (via Cards and Paypal Wallet) - * Adyen (Paze Wallet) - * Elavon (Cards) - * Klarna Kustom Checkout - * JPMorgan (Cards) - * Deutsche Bank(Cards 3DS) + * Nexixpay (Cards) + * Fiuu (Duitnow QR, Apple Pay, Google Pay) + * Cybersource (Paze Wallet, Samsung Pay) + * Bankofamerica (Samsung Pay) + * Novalnet (Paypal, Google Pay) + * Paypal Vaulting (via Cards and Paypal Wallet) + * Adyen (Paze Wallet) + * Elavon (Cards) + * Klarna Kustom Checkout + * JPMorgan (Cards) + * Deutsche Bank(Cards 3DS) * Data reporting at an organization, merchant and profile level for easier reconciliation * Enhancements in analytics module for Refunds, Disputes and Smart Retries * [Support for migration of Network Tokens for business continuity](https://docs.hyperswitch.io/explore-hyperswitch/account-management/data-migration/import-data-to-hyperswitch) @@ -48,7 +48,7 @@ There are a lot of problems to be solved in payments, but the majority of our cu 🌎 **Community Feature Requests:** Most of our community feature requests falls under one of the above themes, but we still keep this as a separate theme, because we intend to actively explore new problem statements and themes from the community before scheduling actual feature work. -👨‍💻 **Developer Experience:** Providing a great self-service and self-installation experience for developers who wish to use or contribute back to Hyperswitch. +👨‍💻 **Developer Experience:** Providing a great self-service and self-installation experience for developers who wish to use or contribute back to Juspay Hyperswitch. 💰 **Reducing Payment Costs:** Payments should be like a free utility for digital businesses. Any business should be able reduce payment processing costs by embracing the diversity in payments. @@ -56,17 +56,17 @@ There are a lot of problems to be solved in payments, but the majority of our cu 👍 **Reducing Payment Operations:** Managing payments across multiple countries, currencies and processors should not add to the administrative burden on businesses. Hence, Hyperswitch intends to eliminate all such operational burdens so that businesses can focus on the core activities. -| **Legend** | **Description** | -| ---------- | ------------------- | -| 🟩 | Feature completed | -| 🟧 | Feature in progress | -| 🟥 | Work not started | -| 💪 | Stretch target | -| 🚛 | Backlog feature | + | **Legend** | **Description** | + | ---------- | ------------------- | + | 🟩 | Feature completed | + | 🟧 | Feature in progress | + | 🟥 | Work not started | + | 💪 | Stretch target | + | 🚛 | Backlog feature | ### Roadmap -#### Modular and Composable Payments +### Modular and Composable Payments In Q1'25, Hyperswitch will be offering the following composable services as standalone modules on Hyperswitch SaaS version. This activity would be the major focus for the team and each of these modules address one or more of the above roadmap themes @@ -75,45 +75,45 @@ In Q1'25, Hyperswitch will be offering the following composable services as stan * 🟧 **Cost observability service:** For merchants on interchange+ pricing, HyperSense will ingest their PSP invoices and reports to present the cost - trends, drill-downs, auto RCAs for any anomalies and audit of the report _(Larger-scope initiative extending into Q2)_ * 🟧 **Churn Recovery Service:** For merchants with recurring payment use cases and working with an external subscription engine, Churn recovery service will get notified about all recurring transactions and retry those transactions that have failed _(Larger-scope initiative extending into Q2)_ -#### Community Feature Requests +### Community Feature Requests * New integrations - * 🟩 Deutsche Bank for card payments - * 🟩 Redsys - * 🟩 Inespay - * 🟩 Xendit - * 🟧 Amazon Pay _(moved to Q2)_ + * 🟩 Deutsche Bank for card payments + * 🟩 Redsys + * 🟩 Inespay + * 🟩 Xendit + * 🟧 Amazon Pay _(moved to Q2)_ * 🟥 Scan Card Feature for MWeb _(moved to Q2)_ -#### Improving Authorization Rates +### Improving Authorization Rates * 🟧 **Intelligent Routing:** Intelligent Routing module tracks the auth rates of various processor in realtime at a granular level to select the most optimal processor to boost conversions - * 🟥 **Outages and acute failures:** Provides a failsafe system that proactively identifies incidents and holds off traffic to processors that are facing temporary downtimes or failures _(Larger-scope initiative extending into Q2)_ - * 🟥 **Volume Commitments:** Helps select the appropriate PSP for getting volume tier benefits from the processor by routing sufficient payments volume to necessary processors in accordance with their SLA or contracts _(Larger-scope initiative extending into Q2)_ + * 🟥 **Outages and acute failures:** Provides a failsafe system that proactively identifies incidents and holds off traffic to processors that are facing temporary downtimes or failures _(Larger-scope initiative extending into Q2)_ + * 🟥 **Volume Commitments:** Helps select the appropriate PSP for getting volume tier benefits from the processor by routing sufficient payments volume to necessary processors in accordance with their SLA or contracts _(Larger-scope initiative extending into Q2)_ * **🟧 Churn Recovery Service:** For all merchants with recurring payment use cases and working with an external subscription engine, Churn recovery service will get notified about all recurring txns and retry only those transactions that have failed _(Larger-scope initiative extending into Q2)_ - * 🟩 **Split retries -** Merchants will be able to split retries between their subscription engine and the Passive retry service - * 🟩 **Single PSP -** The Churn Recovery service will interact with only a single PSP for a transaction - * 🟩 **Basic Retry logic -** The Churn Recovery service will have a very basic error code & region based logic to retry transactions + * 🟩 **Split retries -** Merchants will be able to split retries between their subscription engine and the Passive retry service + * 🟩 **Single PSP -** The Churn Recovery service will interact with only a single PSP for a transaction + * 🟩 **Basic Retry logic -** The Churn Recovery service will have a very basic error code & region based logic to retry transactions * 🟧 Secure Card on File (SCOF) with Passkeys - For Mastercard cards, provide Biometric authentication to the customers _(extending to Q2)_ * 🟧 **One time tokenization:** During CIT payments, merchants will be able to do collect, validate and do one-time tokenization of cards & other PMs and use these one-time tokens later in the checkout flow once the customer confirms their purchase _(extending to Q2)_ * 🟩 Smart retry enhancements using Clear PAN as fallback for Network Tokens/ Gateway tokens to improve auth rates * 🟩 More payment authorization workflows - Estimated auth and Over-capture -#### Reducing Payments Cost +### Reducing Payments Cost * **🟧** PINless Debit routing - enable cost savings through regulated/ unregulated transactions in US _(extending to Q2)_ -#### Reducing Payment Operations +### Reducing Payment Operations * **🟧 Revamped Recon module** to support self exploration with transaction source agnostic recon and 2-way or 3-way level capabilities _(Larger-scope initiative extending into Q2)_ * **🟧 Cost observability service:** For merchants on interchange+ pricing, HyperSense will ingest their PSP invoices and reports to present the cost - trends, drill-downs, auto RCAs for any anomalies and audit of the report _(Larger-scope initiative extending into Q2)_ * 🟩 Data reporting on an organisation, merchant and profile level for easier reconciliation -#### Developer Experience +### Developer Experience * 🟧 Enhancing Hyperswitch's self-deployment process to be even more seamless and self-serve, enabling merchants to deploy a fully compliant payments stack independently _(Larger-scope initiative extending into Q2)_ * 🟧 Revamped connector <> payment method matrix view _(extending to Q2)_ -#### **Want to contribute to the roadmap?** +### **Want to contribute to the roadmap?** [Submit an idea or feature request here](https://github.com/juspay/hyperswitch/discussions/categories/ideas-feature-requests) with a simple explanation on `What?` and `Why?` included. diff --git a/about-hyperswitch/roadmap/roadmap-q2-2024.md b/about-hyperswitch/roadmap/roadmap-q2-2024.md index 33756297..3fab0301 100644 --- a/about-hyperswitch/roadmap/roadmap-q2-2024.md +++ b/about-hyperswitch/roadmap/roadmap-q2-2024.md @@ -11,18 +11,18 @@ Before the beginning of every quarter we come together to develop the next roadm 👂And as always, we listen to your feedback and adapt our plans if needed. -#### Recap of Q1 2024 +### Recap of Q1 2024 Lets start with a short recap on what was released new in Q1 2024 * New connector integrations - * Cybersource support for ApplePay, GooglePay - * PlacetoPay support for card payments - * [3Dsecure.io](http://3dsecure.io) integration for 3DS authentication - * Pix and Boleto via Adyen + * Cybersource support for ApplePay, GooglePay + * PlacetoPay support for card payments + * [3Dsecure.io](http://3dsecure.io) integration for 3DS authentication + * Pix and Boleto via Adyen * Card vault was enhanced to support fingerprinting and MIT recurring payments * Payment gateway agnostic MIT payments through Stripe, Adyen and Cybersource -* Upgraded helm charts to support cloud agnostic installation of Hyperswitch +* Upgraded helm charts to support cloud agnostic installation of Juspay Hyperswitch * Enhanced audit trail for visibility into payment flows * Decoupled 3DS authentication for smoother payment experience and better conversion rates authorization rates * Customs roles on Control center for identity & access management @@ -35,7 +35,7 @@ Lets start with a short recap on what was released new in Q1 2024 * Enhancement of Payouts module - Save payout details, Payouts routing, Payout retries (same provider & different provider). * Subscriptions - Payment processing support for all major subscription solution providers and plug-in support for Kill Bill subscription solution. -#### Core Values +### Core Values Our core values have pretty much remained the same since the early days and here they are: @@ -43,7 +43,7 @@ Our core values have pretty much remained the same since the early days and here * Staying `simple` and `super-lightweight`, and at the same time `reliable` and `scalable` payment switch * Being `community-first` in ideation, planning and execution of features -#### Themes for Roadmap +### Themes for Roadmap There are a lot of problems to be solved in payments, but our majority of our current focus falls under 5 themes below. @@ -59,34 +59,34 @@ There are a lot of problems to be solved in payments, but our majority of our cu
LegendDescription
🟩Feature completed
🟧Feature in progress
🟥Work not started
💪Stretch target
🚛Backlog feature from Q1 2024
-#### Roadmap +### Roadmap -##### Community Feature Requests +#### Community Feature Requests * 🟩 Vaulting payment methods in non-payment flows -* 🟥 ~~Support business continuity for MIT payment through PSP tokens~~ +* 🟥 ~~Support business continuity for MIT payment through PSP tokens~~ - (Will be supported with custom migration APIs) + (Will be supported with custom migration APIs) * 🟩 Card vaulting enhancements - support nickname updation * 🟩 Hyperswitch Widgets for Quick Checkout experience - Paypal, Applepay and Googlepay * New connector and payment method Integrations - * 🟧 Datatrans ([Planet.com](http://planet.com)) for card payments - * 🟩 Netcetera for 3DS service - * 🟩 3DSecure.io for 3DS service - * 🟩 ZSL for bank transfer payments - * 🟩 Mifinity for wallet payments - * 🟩 Payone for payouts + * 🟧 Datatrans ([Planet.com](http://planet.com)) for card payments + * 🟩 Netcetera for 3DS service + * 🟩 3DSecure.io for 3DS service + * 🟩 ZSL for bank transfer payments + * 🟩 Mifinity for wallet payments + * 🟩 Payone for payouts _(list of connectors will keep expanding as we receive more requests from the community!!! )_ -##### Developer Experience +#### Developer Experience * 🟧 🚛 Code restructuring for enhancing readability, reducing compile & build times * 🟧 PCI Software Security Standard (S3) certification. At the moment, Juspay Hyperswitch application is battle tested for PCI L1 compliance. While PCI Software Security Standard (S3) is not mandatory for Hyperswitch related functionalities, we undertook the certification starting Feb 2024 to further augment our security standards. _Expected closure by June 2024_ * 🟩 Upgraded to PCI DSS 4.0 certification * 🟩 Open sourcing the Native Unified Checkout SDK (Android and iOS) -##### Improving Payment Authorization Rates +#### Improving Payment Authorization Rates * 🟩 🚛 Enable scanning of cards to reduce manual entry of card details by the customer * 🟩 Native 3DS on Android and iOS apps @@ -94,12 +94,12 @@ _(list of connectors will keep expanding as we receive more requests from the co * 🟧 Customer initiated payment retries on Hyperswitch Unified Checkout * 🟧 💪 Account verification for bank payment methods like ACH and SEPA -##### Reducing Payment Operations +#### Reducing Payment Operations * 🟥 ~~Payment audit trail will carry more information for Hyperswitch Cloud users - Consolidated API logs, Webhook and State change events on the Control Centre~~ * 🟧 Hyperswitch Headless SDK methods to support payment account management experience for users - this will allow customers to add, update, edit and delete payment methods -* 🟧 Enhance the functionality of the analytics module in the control center by adding additional features such as expanded filter options, currency conversion capabilities, granular timeline views and a broader range of analytical views +* 🟧 Enhance the functionality of the analytics module in the control center by adding additional features such as expanded filter options, currency conversion capabilities, granular timeline views and a broader range of analytical views -#### **Want to contribute to the roadmap?** +### **Want to contribute to the roadmap?** [Submit an idea or feature request here](https://github.com/juspay/hyperswitch/discussions/categories/ideas-feature-requests) with a simple explanation on `What?` and `Why?` included. diff --git a/about-hyperswitch/roadmap/roadmap-q2-2025.md b/about-hyperswitch/roadmap/roadmap-q2-2025.md index c7a68478..0355a215 100644 --- a/about-hyperswitch/roadmap/roadmap-q2-2025.md +++ b/about-hyperswitch/roadmap/roadmap-q2-2025.md @@ -34,35 +34,35 @@ Earlier this year, Juspay Hyperswitch was made more modular to provide businesse ### Roadmap -#### Vault +### Vault -* Make Hyperswitch interoperable with any third party card vault. +* Make Juspay Hyperswitch interoperable with any third party card vault. * Merchants self-hosting Hyperswitch stack will be able to outsource PCI compliance as a managed service to Hyperswitch managed card vault, or other third party card vaults. * Single-use PCI token generation for guest checkout use cases. -#### Authentication +### Authentication * 3DS Intelligence engine to provide 3DS step-up/ step-down decisions, to optimize for (i) Authentication success rate, and (ii) Overall transaction success rate * Enhanced Authentication Analytics to deeply understand the cardholder's authentication journey, 3DS failures, 3DS performance, etc. across issuers, markets, and 20+ other payment dimensions. -#### Revenue Recovery +### Revenue Recovery * Support rule-based as well as intelligent retries -#### Intelligent Routing +### Intelligent Routing * Making decision-engine a standalone offering to enable merchants to use it along side any payment authorization system (vendor agnostic). * Multi-objective routing system to allow (i) Auth Rate Uplift (already available), and (ii) Cost Optimization through Debit routing (to be added) -#### Cost Observability +### Cost Observability * Solve the data challenges across PSPs fee report formats. For example, achieve standardisation across PSP fee names and field names by building standard mapper that can scale for multiple PSPs * Capability to display aggregated fee data in reports, including chargebacks, refunds, and backdated adjustments. -#### Core Orchestration +### Core Orchestration * Connector integrations - Facilitapay, Global Payments, Tranzilla, Paytm, Razorpay -#### **Want to contribute to the roadmap?** +### **Want to contribute to the roadmap?** [Submit an idea or feature request here](https://github.com/juspay/hyperswitch/discussions/categories/ideas-feature-requests) with a simple explanation on `What?` and `Why?` included. diff --git a/about-hyperswitch/roadmap/roadmap-q3-2024.md b/about-hyperswitch/roadmap/roadmap-q3-2024.md index b52c2997..7f21c2ab 100644 --- a/about-hyperswitch/roadmap/roadmap-q3-2024.md +++ b/about-hyperswitch/roadmap/roadmap-q3-2024.md @@ -14,7 +14,7 @@ Before the beginning of every quarter we come together to develop the next roadm ### Recap of Q2 2024 * Payouts support with Adyen Platform, Cybersource, Ebanx, Payone and Paypal and instant payout methods -* Vaulting payment methods with Hyperswitch for on-session payments +* Vaulting payment methods with Juspay Hyperswitch for on-session payments * Natively authenticating payments using Third party 3DS service providers - Netcetra, 3dsecure.io * Integrations for alternate payment methods via Mifinity and ZSL * Scan a card experience on Unified Checkout @@ -45,52 +45,50 @@ There are a lot of problems to be solved in payments, but our majority of our cu 👍 **Reducing Payment Operations:** Managing payments across multiple countries, currencies and processors should not add to the administrative burden on businesses. Hence, Hyperswitch intends to eliminate all such operational burdens so that businesses can focus on the core activities. -| **Legend** | **Description** | -| ---------- | ------------------- | -| 🟩 | Feature completed | -| 🟧 | Feature in progress | -| 🟥 | Work not started | -| 💪 | Stretch target | -| 🚛 | Backlog feature | + | **Legend** | **Description** | + | ---------- | ------------------- | + | 🟩 | Feature completed | + | 🟧 | Feature in progress | + | 🟥 | Work not started | + | 💪 | Stretch target | + | 🚛 | Backlog feature | ### Roadmap -#### Community Feature Requests +### Community Feature Requests * 🟩 Payment Method Management experience to view, add and delete payment methods (for Web platform) * New connector and payment method Integrations (more will be added as we progress) - * 🟩 🚛 Datatrans ([Planet.com](http://planet.com/)) for card payments - * 🟩 Razorpay for UPI payments - * 🟧 PAZE checkout _(extending to Q4)_ - * 🟧 TaxJar for dynamic tax calculations _(extending to Q4)_ - * 🟩 Novalnet for card payments - * 🟩 Fiuu for cards, bank transfer and inter-operable QR based payments - * 🟩 Itau Bank for instant payments - * 🟩 Payouts via PayOne, and Wells Fargo + * 🟩 🚛 Datatrans ([Planet.com](http://planet.com/)) for card payments + * 🟩 Razorpay for UPI payments + * 🟧 PAZE checkout _(extending to Q4)_ + * 🟧 TaxJar for dynamic tax calculations _(extending to Q4)_ + * 🟩 Novalnet for card payments + * 🟩 Fiuu for cards, bank transfer and inter-operable QR based payments + * 🟩 Itau Bank for instant payments + * 🟩 Payouts via PayOne, and Wells Fargo - - -#### Improving Authorization Rates +### Improving Authorization Rates * 🟩 Network Tokenization with account updater to (a) improve auth rates for one-time/ recurring payments and (b) reducing scheme fee -#### Reducing Payments Cost +### Reducing Payments Cost * Direct integrations with banks acquirers to reduce cost (will be extended for EU banks) - * 🟩 Wells Fargo (US) - * 🟩 Deutsche Bank (DE) + * 🟩 Wells Fargo (US) + * 🟩 Deutsche Bank (DE) * 🟩 Pay by Bank Experience through Plaid Open banking to enable instant bank transfer (push payments) in the UK and EU via with support for app2app redirection experience -#### Reducing Payment Operations +### Reducing Payment Operations * 🟩 🚛 Account verification for pull payments like Direct Debits in the EU and US (ACH, SEPA) via Plaid -* 🟩 User management and dashboard analytics views at entity level granularity (org to profile) +* 🟩 User management and dashboard analytics views at entity level granularity (org to profile) -#### Developer Experience +### Developer Experience * 🟩 Payment plugins for ~~Commerce Tools~~ Saleor - Headless commerce platform to facilitate faster integrations * 🟩 🚛 PCI Software Security Standard (S3) certification -#### **Want to contribute to the roadmap?** +### **Want to contribute to the roadmap?** [Submit an idea or feature request here](https://github.com/juspay/hyperswitch/discussions/categories/ideas-feature-requests) with a simple explanation on `What?` and `Why?` included. diff --git a/about-hyperswitch/roadmap/roadmap-q4-2023.md b/about-hyperswitch/roadmap/roadmap-q4-2023.md index 11a2e211..cfda6ddd 100644 --- a/about-hyperswitch/roadmap/roadmap-q4-2023.md +++ b/about-hyperswitch/roadmap/roadmap-q4-2023.md @@ -11,7 +11,7 @@ Before the beginning of every quarter we come together to develop the next roadm 👂And as always, we listen to your feedback and adapt our plans if needed. -#### Core Values +### Core Values Our core values have pretty much remained the same since the early days and here they are: @@ -19,11 +19,11 @@ Our core values have pretty much remained the same since the early days and here * Staying `simple` and `super-lightweight`, at the same time `reliable` and `scalable` payment switch * Being `community-first` in ideation, planning and execution of features -#### Themes for Roadmap +### Themes for Roadmap There are a lot of problems to be solved in payments, but our majority of our current focus falls under 5 themes below. -* 👨‍💻 **Developer Experience:** Providing a great self-service and self-installation experience for developers who wish to use or contribute back to Hyperswitch. +* 👨‍💻 **Developer Experience:** Providing a great self-service and self-installation experience for developers who wish to use or contribute back to Juspay Hyperswitch. * 💰 **Reducing Payment Costs:** Payments should be like a free utility for digital businesses. Any business should be able reduce payment processing costs by embracing the diversity in payments. * 📈 **Improving Authorization Rates:** Ensuring a best-in-class payment experience and access to latest innovations in the payments ecosystem for all businesses. * 👍 **Reducing Payment Operations:** Managing payments across multiple countries, currencies and processors should not add to the administrative burden on businesses. Hence, Hyperswitch intends to eliminate all such operational burdens so that businesses can focus on the core activities. @@ -31,7 +31,7 @@ There are a lot of problems to be solved in payments, but our majority of our cu
LegendDescription
🟩Work completed
🟧Work in progress
🟥Work not started
💪Stretch target
🚛Backlogged for next quarter
-#### Developer Experience +### Developer Experience * 🟩 Installation scripts for cloud deployment using EKS (on AWS). [Try the installation from here](https://opensource.hyperswitch.io/deploy-hyperswitch-on-aws/deploy-app-server) * 🟩 Publish developer docs for self-hosting Hyperswitch. [Checkout the documentation here](https://opensource.hyperswitch.io/) @@ -39,7 +39,7 @@ There are a lot of problems to be solved in payments, but our majority of our cu * 🟩 AWS menu-driven Hyperswitch installation support * 🟩 Optimizing Hyperswitch application overhead from 30ms to 20ms -#### Reducing Payment Costs +### Reducing Payment Costs * 🟩 Reduce chargebacks by enabling Signifyd and Riskified (FRMs). [Try it out by signing up for hyperswitch](https://app.hyperswitch.io/register) * 🟩 Support for Gocardless bank direct debits. [Try it out by signing up for Hyperswitch](https://app.hyperswitch.io/register) @@ -49,20 +49,20 @@ There are a lot of problems to be solved in payments, but our majority of our cu * 🟧 Enabling surcharge for specific payment methods to promote low cost payment methods * ~~🟥 Direct bank integration - Wells Fargo~~ \[Dropped] -#### Improving Authorization Rates +### Improving Authorization Rates * 🟩 Smart retry with 3DS for fraud declined payments. [Learn more about the feature](https://hyperswitch.io/docs/features/smartRetries) * :articulated\_lorry: Paypal Vault flows for improving repeat user experience * :articulated\_lorry:💪 Enhancing 3DS experience with Delegated Authentication and Visa's Digital Authentication Framework (for SCA markets) * :articulated\_lorry:💪 Improve authorization rates for bank payments through Open banking integration for UK/EU -#### Reducing Payment Operations +### Reducing Payment Operations * 🟩 Support for exporting hyperswitch data to third party data warehouse * :articulated\_lorry: Audit trail visibility for Payments, Refunds, Disputes on Hyperswitch Control Centre * :articulated\_lorry:💪 System health metrics monitoring module on Hyperswitch Control Centre -#### Community Feature Requests +### Community Feature Requests * 🟩 Open sourcing Hyperswitch Unified Web Checkout for self-hosting. [Try it out here](https://opensource.hyperswitch.io/deploy-hyperswitch-on-aws/deploy-app-server) * 🟩 Open sourcing Card Vault application code for self-hosting [Try it out here](https://opensource.hyperswitch.io/hyperswitch-open-source/deploy-hyperswitch-on-aws/deploy-card-vault) @@ -71,6 +71,6 @@ There are a lot of problems to be solved in payments, but our majority of our cu * 🟩💪 Open sourcing Fraud and Risk Management Integrations * 🟩💪 Open sourcing Payouts module -#### **Want to contribute to the roadmap?** +### **Want to contribute to the roadmap?** [Submit an idea or feature request here](https://github.com/juspay/hyperswitch/discussions/categories/ideas-feature-requests) with a simple explanation on `What?` and `Why?` included. diff --git a/about-hyperswitch/roadmap/roadmap-q4-2024.md b/about-hyperswitch/roadmap/roadmap-q4-2024.md index 19f6dff1..8d4a67b6 100644 --- a/about-hyperswitch/roadmap/roadmap-q4-2024.md +++ b/about-hyperswitch/roadmap/roadmap-q4-2024.md @@ -17,14 +17,14 @@ Before the beginning of every quarter we come together to develop the next roadm * Network Tokenization capability with Visa, Master and Amex card networks. This shall enable merchant to use network tokens to improve auth rates for one-time/ recurring payments and reduce the interchange fee * Payment Method Management experience to view, add and delete payment methods (for Web platform) * New connector and payment method integrations - * Datatrans ([Planet.com](http://planet.com/)) for card payments - * Wells Fargo (US) for card payments - * Deutsche Bank (DE) for SEPA direct debits - * Novalnet for card payments - * Fiuu for cards, bank transfer and inter-operable QR based payments - * Itau Bank for instant payments - * Payouts via PayOne, and Wells Fargo - * Razorpay UPI payments + * Datatrans ([Planet.com](http://planet.com/)) for card payments + * Wells Fargo (US) for card payments + * Deutsche Bank (DE) for SEPA direct debits + * Novalnet for card payments + * Fiuu for cards, bank transfer and inter-operable QR based payments + * Itau Bank for instant payments + * Payouts via PayOne, and Wells Fargo + * Razorpay UPI payments * Pay by Bank Experience through [Plaid Open banking](../../explore-hyperswitch/payment-orchestration/quickstart/payment-methods-setup/banks/open-banking.md). This is to allow merchants to enable instant bank transfer (push payments) in the UK and EU via with support for app2app redirection experience * Account verification via Plaid for pull payments (ACH, SEPA) in the EU and US * React Native SDK was Open Sourced @@ -49,7 +49,7 @@ There are a lot of problems to be solved in payments, but our majority of our cu 🌎 **Community Feature Requests:** Most of our community feature requests falls under one of the above themes, but we still keep this as a separate theme, because we intend to actively explore new problem statements and themes from the community before scheduling actual feature work. -👨‍💻 **Developer Experience:** Providing a great self-service and self-installation experience for developers who wish to use or contribute back to Hyperswitch. +👨‍💻 **Developer Experience:** Providing a great self-service and self-installation experience for developers who wish to use or contribute back to Juspay Hyperswitch. 💰 **Reducing Payment Costs:** Payments should be like a free utility for digital businesses. Any business should be able reduce payment processing costs by embracing the diversity in payments. @@ -57,46 +57,46 @@ There are a lot of problems to be solved in payments, but our majority of our cu 👍 **Reducing Payment Operations:** Managing payments across multiple countries, currencies and processors should not add to the administrative burden on businesses. Hence, Hyperswitch intends to eliminate all such operational burdens so that businesses can focus on the core activities. -| **Legend** | **Description** | -| ---------- | ------------------- | -| 🟩 | Feature completed | -| 🟧 | Feature in progress | -| 🟥 | Work not started | -| 💪 | Stretch target | -| 🚛 | Backlog feature | + | **Legend** | **Description** | + | ---------- | ------------------- | + | 🟩 | Feature completed | + | 🟧 | Feature in progress | + | 🟥 | Work not started | + | 💪 | Stretch target | + | 🚛 | Backlog feature | ### Roadmap -#### Community Feature Requests +### Community Feature Requests * 🟩 More payment authorization workflows - split payments and incremental authorization * New integrations - - * 🟩 SamsungPay - * 🟩 Nexi Xpay card payments - * 🟩 PAZE for card payments in the US + * 🟩 SamsungPay + * 🟩 Nexi Xpay card payments + * 🟩 PAZE for card payments in the US * 🟩 Dynamic Tax updater for express checkout wallets (Paypal, Applepay, Googlepay and Klarna) using Taxjar integration -#### Improving Authorization Rates +### Improving Authorization Rates * 🟩 Extending smart retries to 7 more PSPs: Adyen, Worldpay, Braintree, Deutsche Bank, Novalnet, Fiuu and Nexi Xpay * 🟩 Implement MPAN (merchant tokens) for Applepay recurring payments -* 🟩 Enabling guest checkout flow with [Click to Pay](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/use-cases/click-to-pay/) +* 🟩 Enabling guest checkout flow with [Click to Pay](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/use-cases/click-to-pay/) -#### Reducing Payments Cost +### Reducing Payments Cost * More direct bank acquirer integrations - * 🟩 JP Morgan + * 🟩 JP Morgan -#### Reducing Payment Operations +### Reducing Payment Operations -* 🟩 Data reporting at an organization, merchant and profile level for easier reconciliation -* 🟩 Enhancements in analytics module for Refunds, Disputes and Smart Retries +* 🟩 Data reporting at an organization, merchant and profile level for easier reconciliation +* 🟩 Enhancements in analytics module for Refunds, Disputes and Smart Retries * 🟩 Migration of Network Tokens for business continuity -#### Developer Experience +### Developer Experience -* 🟩 Hyperswitch widgets to support Alternate payment methods, express checkout payment methods and Authentication solutions +* 🟩 Hyperswitch widgets to support Alternate payment methods, express checkout payment methods and Authentication solutions -#### **Want to contribute to the roadmap?** +### **Want to contribute to the roadmap?** [Submit an idea or feature request here](https://github.com/juspay/hyperswitch/discussions/categories/ideas-feature-requests) with a simple explanation on `What?` and `Why?` included.