> 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/coingate.md).

# Coingate

Connect Coingate through Hyperswitch.

Coingate gives merchants an alternative payment method integration in Hyperswitch. It declares crypto support in the capability block below, with method-specific capture, refund, mandate, region, and currency details there. Use the status and webhook declaration in that block when deciding whether to enable it.

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

### Status and capabilities

**Integration status:** sandbox

**Category:** alternative payment method

**Webhook flows:** payments

| Payment method | Type   | Mandates      | Refunds   | Capture methods                 | Countries | Currencies    |
| -------------- | ------ | ------------- | --------- | ------------------------------- | --------- | ------------- |
| crypto         | Crypto | not supported | supported | automatic, sequential automatic | 59        | EUR, GBP, USD |

{% hint style="warning" %}
Although the capability table lists sequential automatic capture, the connector does not implement the capture flow. A capture request returns a flow-not-supported error, so only automatic capture works with CoinGate. Tracked upstream as [issue 14374](https://github.com/juspay/hyperswitch/issues/14374).
{% endhint %}

### Authentication

Enter the connector credentials **API Key** and **Merchant Token**. Both are used on the payment path, not just for callbacks.

The API key is sent as `Authorization: Bearer <API key>`. The Merchant Token is sent in the body of every payment creation request, as the `token` field of [`CoingatePaymentsRequest`](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate/transformers.rs#L67-L94), and the same value is what CoinGate webhooks are checked against. A wrong Merchant Token therefore fails payments, not only callbacks. These labels come from [`[coingate.connector_auth.BodyKey]`](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/connector_configs/toml/sandbox.toml); the auth mapping is [`CoingateAuthType`](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate/transformers.rs#L119-L135), and the header is built in [`get_auth_header()`](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate.rs#L122-L133).

### Refund metadata

Refunds need more than the two credentials, from two different places, and a refund fails if either set is incomplete.

Three values come from the connector metadata you configure once: `currency_id`, `platform_id`, and `ledger_account_id`, from [`CoingateConnectorMetadataObject`](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate/transformers.rs#L37-L42). These are not authentication values and are not currency-scoped credentials.

Three more come from the refund request itself: `address` and `email` are read out of `refund_connector_metadata`, and `reason` is the refund's own reason field. [`CoingateRefundRequest`](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate/transformers.rs#L218-L275) rejects the refund with a missing-field error if `refund_connector_metadata` is absent, or if it lacks `address` or `email`, or if the refund carries no `reason`. Supply all three per refund.

### Before you start

1. Create or sign in to your [CoinGate account](https://coingate.com/) and obtain the **API Key** and **Merchant Token**.
2. Sign in to the [Hyperswitch control center](https://app.hyperswitch.io/) and open CoinGate.
3. Enter the two connector credentials.

No provider dashboard path beyond account setup was verified for this page.

### Webhooks

CoinGate maps webhook statuses to payment outcomes: `Pending` becomes processing, `Confirming` and `New` require payment action, `Paid` succeeds, and `Invalid`, `Expired`, and `Canceled` fail. It verifies the webhook by comparing the request token with the configured **Merchant Token**. See [`get_webhook_event_type()`](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate.rs#L569-L595) and [`verify_webhook_source()`](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate.rs#L596-L618).

### Source reference

Authentication and webhook behavior on this page is tied to Hyperswitch `ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7`. See [Coingate connector source](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate.rs) and [Coingate transformers](https://github.com/juspay/hyperswitch/blob/ec9d1d22bf0257b7de4d4d8bbba4e27fd520bdf7/crates/hyperswitch_connectors/src/connectors/coingate/transformers.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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
