> For the complete documentation index, see [llms.txt](https://docs.hyperswitch.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hyperswitch.io/integrations/connectors-integrations/payment-processor-capabilities/available-connectors/rapyd.md).

# Rapyd

Configure Rapyd card and wallet payments with Hyperswitch.

<div align="left"><img src="https://hyperswitch.io/icons/homePageIcons/logos/rapydLogo.svg" alt=""></div>

Across Rapyd's payment gateway routes, card payments sit alongside Apple Pay and Google Pay. Credit and debit cards can use automatic, manual, or sequential automatic capture, while wallets use the same capture options without a 3DS step. Mandates are not supported, and refunds cover every listed method.

### Status and capabilities

**Integration status:** sandbox

**Category:** payment gateway

**Webhook flows:** disputes, payments, refunds

| Payment method | Type        | Mandates      | Refunds   | Capture methods                         | 3DS                 | Card networks                                                            | Countries                                         | Currencies                                       |
| -------------- | ----------- | ------------- | --------- | --------------------------------------- | ------------------- | ------------------------------------------------------------------------ | ------------------------------------------------- | ------------------------------------------------ |
| card           | Credit Card | not supported | supported | automatic, manual, sequential automatic | supported, optional | American Express, Diners Club, Discover, JCB, Mastercard, UnionPay, Visa | 246 ([full list](https://hyperswitch.io/pm-list)) | 76 ([full list](https://hyperswitch.io/pm-list)) |
| card           | Debit Card  | not supported | supported | automatic, manual, sequential automatic | supported, optional | American Express, Diners Club, Discover, JCB, Mastercard, UnionPay, Visa | 246 ([full list](https://hyperswitch.io/pm-list)) | 76 ([full list](https://hyperswitch.io/pm-list)) |
| wallet         | Apple Pay   | not supported | supported | automatic, manual, sequential automatic | not applicable      | -                                                                        | 59 ([full list](https://hyperswitch.io/pm-list))  | 40 ([full list](https://hyperswitch.io/pm-list)) |
| wallet         | Google Pay  | not supported | supported | automatic, manual, sequential automatic | not applicable      | -                                                                        | 50 ([full list](https://hyperswitch.io/pm-list))  | 36 ([full list](https://hyperswitch.io/pm-list)) |

### Activate Rapyd with Hyperswitch

#### Before you start

1. Register with Rapyd.
2. Sign in to the [Hyperswitch control center](https://app.hyperswitch.io/) or create your Hyperswitch account.
3. In the Rapyd dashboard, go to **Developers > Access & Secret Keys** and copy your Access Key and Secret Key.
4. Prepare your webhook verification value now: `{"access_key":"<access key>","secret_key":"<secret key>"}` with your Rapyd Access Key and Secret Key. During the activation flow below, enter this JSON as the connector's Source Verification Key. Hyperswitch parses it as the Rapyd authentication object for webhook verification, separately from the payment credentials. See the [`RapydAuthType` webhook parse](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L778-L783).
5. Enable the same payment methods in Rapyd and in your Hyperswitch connector configuration.

To connect Rapyd to your Hyperswitch account, follow [Activate a connector on Hyperswitch](/integrations/connectors-integrations/activate-connector-on-hyperswitch.md), then return here for what Rapyd supports.

### Connector-Specific Notes

Every API request carries a fresh signature. The method component is lowercase: `post`, `get`, or `delete`, as shown by the [`post` authorization call](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L231-L235), [`delete` void call](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L344-L348), [`get` sync call](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L441-L445), [`post` capture call](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L540-L543), and [`post` refund call](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L670-L673). Hyperswitch concatenates that method, the URL path, salt, timestamp, access key, secret key, and request body in that order with no delimiter. It signs the value with HMAC-SHA256 using the secret key, hex-encodes the result, then URL-safe Base64-encodes it. See [`generate_signature()`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L76-L100).

### Authentication

Provide an `<access key>` and `<secret key>`. The `BodyKey` mapping assigns `api_key` to the access key and `key1` to the secret key. Rapyd does not use an `Authorization` header; each request sends `access_key`, `salt`, `timestamp`, and `signature` headers. See [`RapydAuthType::try_from()`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd/transformers.rs#L199-L217), [`get_auth_header()`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L120-L126), and the [authorization request headers](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L223-L255).

### Webhooks

The Rapyd `signature` header carries URL-safe Base64 of the hex-encoded HMAC-SHA256 output. Hyperswitch URL-safe Base64-decodes the header and compares it against the hex-encoded HMAC of the signed message inside the connector's own verifier. The signed message concatenates the webhook URL, salt, timestamp, access key, secret key, and body in that order with no delimiter. See [`verify_webhook_source()`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L799-L836) and [`get_webhook_source_verification_message()`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L765-L797).

The connector maps 8 webhook event values:

| Wire event value          | Effect                                   |
| ------------------------- | ---------------------------------------- |
| `PAYMENT_COMPLETED`       | Payment succeeds                         |
| `PAYMENT_CAPTURED`        | Payment succeeds                         |
| `PAYMENT_FAILED`          | Payment fails                            |
| `REFUND_COMPLETED`        | Refund succeeds                          |
| `PAYMENT_REFUND_REJECTED` | Refund fails                             |
| `PAYMENT_REFUND_FAILED`   | Refund fails                             |
| `PAYMENT_DISPUTE_CREATED` | Dispute opens                            |
| `PAYMENT_DISPUTE_UPDATED` | Dispute follows the status mapping below |

For dispute updates, 4 status values change the dispute state:

| Wire status value | Effect                |
| ----------------- | --------------------- |
| `ACT`             | Dispute opens         |
| `RVW`             | Dispute is challenged |
| `LOS`             | Dispute is lost       |
| `WIN`             | Dispute is won        |

The wire values come from [`RapydWebhookObjectEventType`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd/transformers.rs#L542-L566) and [`RapydWebhookDisputeStatus`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd/transformers.rs#L568-L590). Their effects come from [`get_webhook_event_type()`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs#L869-L900).

### Source reference

The connector implementation is [`rapyd.rs`](https://github.com/juspay/hyperswitch/blob/a17a23c4c4c907d2314043a32a9f505f7f2bd4f9/crates/hyperswitch_connectors/src/connectors/rapyd.rs).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hyperswitch.io/integrations/connectors-integrations/payment-processor-capabilities/available-connectors/rapyd.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
