# Gateway Profiles

A gateway profile is a named set of credentials for one payment gateway connection. For example, your Stripe live account and your Stripe test account are each a separate profile. You can create multiple profiles for the same gateway — for example, one per country or business unit.

Gateway profiles are a prerequisite for:

* Configuring cascade rules
* Setting a default gateway in Merchant Configuration

## Prerequisites

Before creating a gateway profile, obtain the required credentials from your payment gateway. Each gateway has its own setup guide:

* [Stripe](https://docs.odus.com/docs/guides/integrations/gateways/stripe/.md)
* [Adyen](https://docs.odus.com/docs/guides/integrations/gateways/adyen/.md)
* [Checkout.com](https://docs.odus.com/docs/guides/integrations/gateways/checkout/.md)
* [PayPal](https://docs.odus.com/docs/guides/integrations/gateways/paypal/.md)

## Create a gateway profile

1. In the Dashboard, go to **Cascades > Gateways**.

2. Click **Add**.

3. Fill in the form:

   <!-- -->

   * **Title** — a descriptive name for this profile, for example `Stripe — EU live`.
   * **Integration** — the gateway to connect to: `stripe`, `adyen`, `checkout`, or `paypal`.
   * **Environment** — `live` or `test`. This must match the type of credentials you are entering.

4. Enter the gateway-specific credentials. See [Gateway credentials](#gateway-credentials) below.

5. Click **Add**.

After the profile is created, a **Setup Webhooks** dialog appears. You can enter your webhook verification key immediately or skip this step and configure it later. See [Set up webhooks](#set-up-webhooks).

You can also create a profile via the API: [`POST /v2/gateway-profiles`](https://docs.odus.com/docs/api/core/v2/gateway-profile-controller-create).

## Gateway credentials

The fields required depend on the gateway you selected.

### Stripe

| Field                                                               | Required | Description                                                                                                                                                                                    |
| ------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Secret key                                                          | Yes      | Secret key from the Stripe Dashboard (`sk_test_...` or `sk_live_...`)                                                                                                                          |
| Send the statement descriptor suffix instead of the full descriptor | No       | Turn on if Stripe rejects payments that set a full statement descriptor. See [Statement descriptors](https://docs.odus.com/docs/guides/integrations/gateways/stripe/.md#statement-descriptors) |

### Adyen

| Field            | Required  | Description                                                               |
| ---------------- | --------- | ------------------------------------------------------------------------- |
| Merchant account | Yes       | Your Adyen merchant account name                                          |
| API key          | Yes       | API key from the Adyen Dashboard                                          |
| Live URL prefix  | Live only | The prefix from **Developers > API URLs > Prefix** in the Adyen Dashboard |

### Checkout.com

| Field              | Required | Description                                                            |
| ------------------ | -------- | ---------------------------------------------------------------------- |
| Secret key         | Yes      | Checkout.com secret key (`sk_sbox_...` for sandbox, `sk_...` for live) |
| Processing channel | Yes      | Processing channel ID (`pc_...`)                                       |
| Merchant city      | No       | Your city, used for payment statement descriptors                      |

### PayPal

| Field                    | Required | Description                                                                                                                                             |
| ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Integration mode         | Yes      | `Vault` uses PayPal Vaulting. `Billing Agreement` uses the Billing Agreements API. Cannot be changed after creation                                     |
| Client ID                | Yes      | Client ID from your PayPal application                                                                                                                  |
| Secret key               | Yes      | Secret key from your PayPal application                                                                                                                 |
| Collect shipping address | No       | Whether to collect the customer's shipping address. Available only for Vault mode                                                                       |
| Accept card payments     | No       | Whether the profile also processes card payments. See [Card payments](https://docs.odus.com/docs/guides/integrations/gateways/paypal/.md#card-payments) |

warning

Billing Agreements require Reference Transactions to be enabled on your PayPal account. Contact PayPal support to enable this feature before selecting this integration mode.

## Set up webhooks

Webhooks allow your gateway to notify ODUS about payment status updates in real time. Each profile has a unique webhook URL generated by ODUS. You must register this URL in your gateway's dashboard and provide a webhook verification key so ODUS can validate incoming requests.

To configure webhooks on a profile:

1. Go to **Cascades > Gateways** and click the profile.

2. Copy the **Webhook URL** shown on the edit page and register it in your gateway's dashboard.

3. Enter the **Webhook Verification Key**:

   <!-- -->

   * Stripe: the webhook secret from **Developers > Webhooks** in the Stripe Dashboard.
   * Adyen: the HMAC key from **Developers > Webhooks > Edit** in the Adyen Dashboard.
   * Checkout.com: the webhook secret from your Checkout.com Dashboard.
   * PayPal: the Webhook ID from your PayPal application.

4. Click **Update**.

## Edit a gateway profile

1. Go to **Cascades > Gateways** and click the profile you want to edit.
2. Update the **Title**, **Environment**, credential fields, or **Webhook Verification Key** as needed.
3. Click **Update**.

note

The **Integration** type (for example, Stripe or Adyen) cannot be changed after a profile is created. Create a new profile to use a different gateway.

For PayPal, the **Integration mode** also cannot be changed after creation.

You can also update a profile via the API: [`POST /v2/gateway-profiles/{id}`](https://docs.odus.com/docs/api/core/v2/gateway-profile-controller-update).

## Archive and reactivate a profile

Archiving a profile makes it unavailable for new payments. Existing payments that have already been processed are not affected.

To archive a profile:

1. Go to **Cascades > Gateways** and click the profile.
2. Click **Actions** and select **Archive**.
3. Confirm in the dialog.

To reactivate an archived profile, follow the same steps and select **Reactivate** instead.

## View profile status

The **Gateways** list shows all profiles for your account. The list indicates whether each profile is active or archived.

To view the full details of a single profile via the API, use [`GET /v2/gateway-profiles/{id}`](https://docs.odus.com/docs/api/core/v2/gateway-profile-controller-find-one).
