Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions explore-hyperswitch/account-management/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: Manage accounts teams analytics disputes reconciliation and multi-tenancy settings
icon: joystick
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Single dashboard for all your payment operations needs!
description: Monitor payment analytics and manage payment operations through a unified dashboard interface
icon: chart-pie-simple-circle-dollar
---

Expand Down Expand Up @@ -49,7 +49,7 @@ _Payment success rate does not include payments which are authorized by but not

#### **Processed amount**

Sum of amount of all payments with status = succeeded.
Sum of amount of all payments with `status = succeeded`.

_Please note that there could be payments which could be authorized but not captured. Such payments are not included in the processed amount, because non-captured payments will be be settled to your merchant account by your payment processor._

Expand Down Expand Up @@ -123,7 +123,7 @@ Below are some of the day-to-day use cases of payments operations across teams w

Inadequate attention to payment operations might negatively impact your Net Promoter Score and impact the growth of your business.

## How could Hyperswitch simplify Payment Operations?
## How could Juspay Hyperswitch simplify Payment Operations?

Hyperswitch Control Center is a single interface that all your teams will be required to use for all Payment Operations use cases. This provides more power to your team for managing payments seamlessly.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Export your payments data to Redshift from Hyperswitch
description: Export payments data to Amazon Redshift for analytics and business intelligence reporting
icon: tachograph-digital
---

Expand Down Expand Up @@ -96,22 +96,22 @@ IGNOREHEADER 1
timeformat 'YYYY-MM-DD HH:MI:SS'
csv;

MERGE INTO payments USING payments_stage ON payments.payment_id = payments_stage.payment_id
MERGE INTO payments USING payments_stage ON payments.`payment_id = payments_stage`.payment_id
WHEN MATCHED THEN UPDATE SET
payment_id = payments_stage.payment_id,
`payment_id = payments_stage`.payment_id,
attempt_id = payments_stage.attempt_id,
status = payments_stage.status,
amount = payments_stage.amount,
currency = payments_stage.currency,
`status = payments_stage`.status,
`amount = payments_stage`.amount,
`currency = payments_stage`.currency,
amount_to_capture = payments_stage.amount_to_capture,
customer_id = payments_stage.customer_id,
created_at = payments_stage.created_at,
order_details = payments_stage.order_details,
connector = payments_stage.connector,
error_message = payments_stage.error_message,
connector_transaction_id = payments_stage.connector_transaction_id,
capture_method = payments_stage.capture_method,
authentication_type = payments_stage.authentication_type,
`capture_method = payments_stage`.capture_method,
`authentication_type = payments_stage`.authentication_type,
mandate_id = payments_stage.mandate_id,
payment_method = payments_stage.payment_method,
payment_method_type = payments_stage.payment_method_type,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: Embed white-labeled payment configuration components directly into your application
icon: laptop-code
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: Integrate embeddable connector configuration components into your React application
hidden: true
---

Expand All @@ -7,7 +8,6 @@ hidden: true
<h2 align="center"><mark style="color:$danger;">This guide has now been replaced with</mark> <a data-mention href="integration-reference.md">integration-reference.md</a></h2>



This SDK allows you to embed the Hyperswitch connector configuration directly into your React application. It uses a provider pattern to manage authentication sessions via JWTs, ensuring your API keys never leak to the client.

Repository URL: [https://github.com/juspay/hyperswitch-control-center-embedded](https://github.com/juspay/hyperswitch-control-center-embedded)
Expand Down Expand Up @@ -63,6 +63,7 @@ Required Headers for Hyperswitch Call:
* X-profile-id: The specific profile ID you want the embedded component to access.

{% code title="server.js" %}

```javascript
const express = require('express');
const cors = require('cors');
Expand Down Expand Up @@ -109,6 +110,7 @@ app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`);
});
```

{% endcode %}

### Step 3: Frontend Integration (React)
Expand Down Expand Up @@ -140,6 +142,7 @@ Key Concept: The fetchToken function is "lazy." It is called:
2. Automatically whenever the SDK detects the session has expired (auto-refresh).

{% code title="app.js" %}

```javascript
function App() {
const [errorMessage, setErrorMessage] = useState(null);
Expand Down Expand Up @@ -217,11 +220,12 @@ function App() {

export default App;
```

{% endcode %}

### API Reference

#### loadHyperswitch(options)
#### loadJuspay Hyperswitch(options)

Initializes the SDK logic.

Expand All @@ -230,7 +234,7 @@ Initializes the SDK logic.
* Should return the JWT string on success.
* Should return `undefined` on failure.

#### \<HyperswitchProvider>
#### \<Juspay HyperswitchProvider>

Context provider that holds the authentication state.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: Reference guide for embedding Juspay Hyperswitch connector configuration in React and HTML apps
---

# Integration Reference

This SDK allows you to embed the Hyperswitch connector configuration directly into your React application. It uses a provider pattern to manage authentication sessions via JWTs, ensuring your API keys never leak to the client.
Expand Down Expand Up @@ -37,6 +41,7 @@ Required Headers for Hyperswitch Call:
* X-profile-id: The specific profile ID you want the embedded component to access.

{% code title="server.js" %}

```javascript
const express = require('express');
const cors = require('cors');
Expand Down Expand Up @@ -86,6 +91,7 @@ app.listen(port, () => {
});

```

{% endcode %}

### Step 2: Choose Your Integration Method
Expand Down Expand Up @@ -259,7 +265,7 @@ export default App;

### API Reference

#### 1. loadHyperswitch(options)
#### 1. loadJuspay Hyperswitch(options)

Initializes the SDK logic.

Expand All @@ -270,7 +276,7 @@ options.fetchToken () => Promise\<string | undefined>
* Should return the JWT string on success.
* Should return undefined on failure.

#### 2. HyperswitchProvider
#### 2. Juspay HyperswitchProvider

Context provider that holds the authentication state.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: Migrate payment data securely between Juspay Hyperswitch and other payment processors
icon: utility-pole-double
---

Expand All @@ -11,6 +12,8 @@ Migration of data is a crucial step in ensuring business continuity without any
<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:blue;"><strong>Import data to Hyperswitch</strong></mark></td><td></td><td></td><td><a href="import-data-to-hyperswitch.md">import-data-to-hyperswitch.md</a></td></tr><tr><td><mark style="color:blue;"><strong>Export data from Hyperswitch</strong></mark></td><td></td><td></td><td><a href="export-data-from-hyperswitch.md">export-data-from-hyperswitch.md</a></td></tr></tbody></table>

{% hint style="info" %}

Kindly reach out to [hyperswitch@juspay.in](mailto:hyperswitch@juspay.in) to initiate your data migration request.&#x20;

{% endhint %}

Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
---
description: Export your payment data securely to another PCI-compliant payment processor
icon: left-from-bracket
---

# Export data from Hyperswitch
# Export data from Juspay Hyperswitch

We believe customers fully own their data. If you decide to export data from Hyperswitch, we will work with your new payment service provider to safely export your data.

{% hint style="info" %}

To meet PCI compliance requirements, Hyperswitch can export data only to a PCI-DSS compliant payment processor. Kindly request your new payment processor’s PCI Attestation of Compliance (AoC) certificate, and share it to [hyperswitch@juspay.in](mailto:hyperswitch@juspay.in) while requesting your data export.&#x20;

{% endhint %}

### Performing the export process:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
---
description: Import payment data from your current processor to Juspay Hyperswitch securely
icon: right-from-bracket
---

# Import data to Hyperswitch
# Import data to Juspay Hyperswitch

We help you with smooth migration from your current payment processor, ensuring uninterrupted business operations.

Expand All @@ -25,7 +26,7 @@ The CSV file for import should be formatted in accordance with the following req
* Delimit rows by a single newline character `\n (not \r\n)`.
* Delimit columns by `,`
* Leave empty fields entirely empty (no character in between delimiters). You must not denote a missing field with NULL, N/A, or any other value.
* Fields can’t contain comma, newline characters `(\r or \n or ,)` within a field.&#x20;
* Fields can’t contain comma, newline characters `(\r or \n or,)` within a field.&#x20;
* Example of what to avoid: `1st Ave\nApt 1`
* All rows must have the same number of columns.
* Field names and values are case-sensitive.
Expand All @@ -47,7 +48,7 @@ The CSV file for import should be formatted in accordance with the following req

### Optional fields:

Note: Billing details are mandatorily required if AVS (Address verification Service) check is enabled.
> **Note:** Billing details are mandatorily required if AVS (Address verification Service) check is enabled.

| **Field** | **Description** |
| ----------------------------- | ------------------------------------------------------------- |
Expand All @@ -69,5 +70,8 @@ Note: Billing details are mandatorily required if AVS (Address verification Serv
| billing\_address\_country | Country of the billing address |

{% hint style="info" %}

To import other payment methods like SEPA, ACH, Paypal, Klarna, kindly reach out to [hyperswitch@juspay.in](mailto:hyperswitch@juspay.in)

{% endhint %}

14 changes: 7 additions & 7 deletions explore-hyperswitch/account-management/disputes.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
---
description: >-
Use Hyperswitch's unified Disputes module to track and manage disputes across
multiple processors
description: Track and manage payment disputes and chargebacks across multiple processors
icon: circle-exclamation
---

Expand All @@ -12,7 +10,9 @@ icon: circle-exclamation
A dispute occurs when a customer contacts their payment method issuer (card issuer/bank/wallet) to question or challenge a particular transaction so that the payment can be reversed.

{% hint style="info" %}

When a card payment is reversed, and the processor debits the merchant's account, it's termed a 'chargeback.' Hyperswitch uses the term 'Disputes' interchangeably to refer to 'Chargebacks' in the context of card payments.

{% endhint %}

The merchants receive notifications from their payment processor when a dispute is raised by their customers against a payment made at their site.
Expand All @@ -23,7 +23,7 @@ Each processor has their own standards or processes around how they notify about

Hyperswitch unifies all the dispute notifications from all your different processors and makes it easier for you to track, accept and as well as challenge them by uploading evidences across different processors from one place.

## Disputes Lifecycle on Hyperswitch
## Disputes Lifecycle on Juspay Hyperswitch

Hyperswitch's unified disputes module uses the following stages and statuses to track your disputes:

Expand All @@ -43,15 +43,15 @@ In most cases, the processors directly debit your account while reversing the pa

For transactions that go through 'Pre-Dispute' stage, they will end up moving to 'Dispute' stage if the merchant's evidence was deemed not satisfactory.

<table><thead><tr><th width="155">dispute_state</th><th>description</th></tr></thead><tbody><tr><td>Opened</td><td>Occurs when a dispute is opened and your processor has debited your account</td></tr><tr><td>Challenged</td><td>Occurs when a merchant uploads an evidence to support their case</td></tr><tr><td>Expired</td><td>Occurs when a merchant doesn't respond in time interval before which an issuer expects a response after the dispute was opened</td></tr><tr><td>Cancelled</td><td>Occurs when a customer withdraws their challenge</td></tr><tr><td>Accepted</td><td>Occurs when a merchant accepts a dispute as valid</td></tr><tr><td>Won</td><td>Occurs when the merchant's challenge was accepted successfully. Known as 'chargeback reversal' in cases of card payments</td></tr><tr><td>Lost</td><td>Occurs when a merchant's challenge was deemed not satisfctory</td></tr></tbody></table>
<table><thead><tr><th width="155">dispute_state</th><th>description</th></tr></thead><tbody><tr><td>Opened</td><td>Occurs when a dispute is opened and your processor has debited your account</td></tr><tr><td>Challenged</td><td>Occurs when a merchant uploads an evidence to support their case</td></tr><tr><td>Expired</td><td>Occurs when a merchant doesn't respond in time interval before which an issuer expects a response after the dispute was opened</td></tr><tr><td>Cancelled</td><td>Occurs when a customer withdraws their challenge</td></tr><tr><td>Accepted</td><td>Occurs when a merchant accepts a dispute as valid</td></tr><tr><td>Won</td><td>Occurs when the merchant's challenge was accepted successfully. Known as 'chargeback reversal' in cases of card payments</td></tr><tr><td>Lost</td><td>Occurs when a merchant's challenge was deemed not satisfactory</td></tr></tbody></table>

### Pre-Arbitration stage

Even after a successful dispute challenge, a payment method issuer might deem the evidence 'not satisfactory' and raise another review appeal. Such payments transition to 'Pre-Arbitration' stage.

<table><thead><tr><th width="167">dispute_state</th><th>description</th></tr></thead><tbody><tr><td>Opened</td><td>Occurs when the issuer opens a review appeal after deeming the evidence unsatisfactory</td></tr><tr><td>Won</td><td>Occurs when the merchant is successful in the pre-arbitration appeal prcoess</td></tr><tr><td>Lost</td><td>Occurs when the merchant loses during the pre-arbitration appeal. Also, known as 'second_chargeback'</td></tr></tbody></table>
<table><thead><tr><th width="167">dispute_state</th><th>description</th></tr></thead><tbody><tr><td>Opened</td><td>Occurs when the issuer opens a review appeal after deeming the evidence unsatisfactory</td></tr><tr><td>Won</td><td>Occurs when the merchant is successful in the pre-arbitration appeal process</td></tr><tr><td>Lost</td><td>Occurs when the merchant loses during the pre-arbitration appeal. Also, known as 'second_chargeback'</td></tr></tbody></table>

## Managing Disputes on Hyperswitch through Dashboard
## Managing Disputes on Juspay Hyperswitch through Dashboard

### 1. Viewing Disputes on Hyperswitch dashboard

Expand Down
2 changes: 1 addition & 1 deletion explore-hyperswitch/account-management/manage-your-team.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Assign roles and permission to users
description: Invite users and assign roles with specific permissions for your payment operations team
icon: screen-users
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: Configure multi-tenant architecture to serve multiple merchants from a single instance
icon: cubes-stacked
---

Expand All @@ -12,7 +13,7 @@ Each tenant operates in a logically isolated environment but shares the underlyi

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf7BGdsPkCw9nalhAIlE%2Fuploads%2FFEv2dQi7YAjfPthCFfXl%2FScreenshot%202024-10-11%20at%202.28.06%E2%80%AFAM.png?alt=media&#x26;token=a4cc712a-665b-492c-ad5c-d105446d0b23" alt="" width="563"><figcaption></figcaption></figure>

## Benefits of Multi-tenancy with Hyperswitch
## Benefits of Multi-tenancy with Juspay Hyperswitch

1. **Configuration Options**: Hyperswitch provides configurable settings that allow tenants to customise the look and feel of the application, such as -&#x20;
* Branding (logo, colors, themes)&#x20;
Expand All @@ -28,7 +29,7 @@ Each tenant operates in a logically isolated environment but shares the underlyi
5. **Documentation and Support**: Tenants can have their own version of developer docs white-listed on their hosts. Comprehensive documentation, tutorials, and support resources are provided to help tenants understand how to onboard and integrate merchants. This includes documentation for APIs, SDKs, best practices, and troubleshooting guides.
6. **Tenant <> Merchant Communication** - Based on tenant's requirements, Hyperswitch can trigger SMS and Email notification on behalf of the tenant to the customers and merchants by integrating with their service provider.

## Hierarchy of Entities in Hyperswitch
## Hierarchy of Entities in Juspay Hyperswitch

A tenant’s scope will include multiple organizations and their associated entities, such as merchant accounts, business profiles, and other hierarchical elements lower in the structure. Each tenant would have tenant admins who can create organizations under the scope of that tenant.&#x20;

Expand All @@ -47,5 +48,8 @@ Each tenant onboarded on Hyperswitch will have white-labeled links for the follo
Once these white-labeled endpoints are available, tenants will be onboarded on Dashboard. Link to set credentials will be sent via email. Post logging in to Dashboard, tenants can onboard merchants.

{% content-ref url="../payment-orchestration/" %}

[payment-orchestration](../payment-orchestration/)

{% endcontent-ref %}

Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
description: >-
Create multiple merchant accounts, profiles and users for seamless integration
with your business.
description: Create multiple merchant accounts and profiles for organizing your payment operations
icon: file-user
---

# Managing Accounts and Profiles

{% hint style="warning" %}

If there are more than one `business_profiles` for a merchant account, then passing `profile_id` when creating a payment is mandatory.

{% endhint %}

**Hyperswitch architecture supports:**
Expand Down Expand Up @@ -42,7 +42,9 @@ A merchant account is associated with an `api_key` and `publishable_key` which i
#### Profile

{% hint style="info" %}

Every merchant account has at least one profile. For easier integration,`profile_id` is not mandatory if there is only one business profile.&#x20;

{% endhint %}

A profile can also be considered to be a business profile for practical purposes, it serves as a logical separation of businesses for seamless integration and onboarding. Every business profile is uniquely identified by a `profile_id`. All the payment settings can be configured at the profile level and will apply to all the payments make via the business profile. If there is more then one business profile, then `profile_id` has to be passed when creating the payments. Business profile allows to configure
Expand All @@ -68,7 +70,6 @@ A processor created under one business profile cannot be used in another busine
* #### Multiple merchant accounts - for **merchants who need different API keys for each of their businesses**



Consider a merchant A who has three different businesses - A\_Shoes, A\_Clothing, A\_Bags. They can create three merchant accounts (Shoes, Clothing, Bags) on Hyperswitch and get separate set of API keys for each of them.

<figure><img src="../../../.gitbook/assets/image (1) (1).jpg" alt=""><figcaption><p>A merchant with multiple merchant accounts and a single business profile in each merchant account</p></figcaption></figure>
Expand Down Expand Up @@ -118,5 +119,8 @@ When a payment is created under a business profile, it would use the routing alg
### For the Platform Org and Merchant architecture, refer to the page below.

{% content-ref url="platform-org-and-merchant-setup.md" %}

[platform-org-and-merchant-setup.md](platform-org-and-merchant-setup.md)

{% endcontent-ref %}

Loading