> ## Documentation Index
> Fetch the complete documentation index at: https://developers.orchestrasolutions.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gateway-Specific Requirements

> Additional parameters and configuration for specific payment gateways.

<Info>
  This page is part of the **REST API Guides**. Using the JavaScript library instead? See [Payments Library Guides](/guides/library/setup).
</Info>

Some payment gateways require additional parameters or have unique configuration requirements. This page documents gateway-specific details you may need when integrating.

<Note>
  These requirements apply when using the REST API directly. The Payments Library handles most of these automatically.
</Note>

## Adyen

The `ShopperInteraction` parameter specifies the sales channel and whether the customer is returning.

```json theme={null}
{
  "paymentGatewayAccount": {
    "paymentGatewayName": "Adyen",
    "credentials": [
      { "Key": "ApiKey", "Value": "..." },
      { "Key": "MerchantAccount", "Value": "..." },
      { "Key": "ShopperInteraction", "Value": "Ecommerce" }
    ]
  }
}
```

<Note>
  For POS accounts, set `ShopperInteraction` to `"Ecommerce"`.
</Note>

***

## AMEX

The `myRef` parameter is **required** and must contain 6 or more characters.

```json theme={null}
{
  "myRef": "ORDER123456"
}
```

***

## Authorize.net

The `ECCenabled` parameter controls refund behavior:

| Value   | Behavior                                                 |
| ------- | -------------------------------------------------------- |
| `true`  | Full card details sent with refund requests              |
| `false` | Refunds not possible after 120 days from original charge |

```json theme={null}
{
  "paymentGatewayAccount": {
    "paymentGatewayName": "AuthorizeNet",
    "credentials": [
      { "Key": "ApiLoginId", "Value": "..." },
      { "Key": "TransactionKey", "Value": "..." },
      { "Key": "ECCenabled", "Value": "true" }
    ]
  }
}
```

***

## Cardstream

Cardstream uses the `OrderDesc` parameter to provide additional order description.

```json theme={null}
{
  "orderDesc": "Premium subscription - 12 months"
}
```

***

## Caterpay

Caterpay uses the `OrderDesc` parameter to provide additional order description.

```json theme={null}
{
  "orderDesc": "Premium subscription - 12 months"
}
```

***

## Credorax

Credorax requires integration certification. Orchestra's integration is certified with Credorax.

Contact [support@orchestrasolutions.com](mailto:support@orchestrasolutions.com) if you need certification documentation.

***

## Elavon

Include the `RebatePWD` (rebate password) in your credentials:

```json theme={null}
{
  "paymentGatewayAccount": {
    "paymentGatewayName": "Elavon",
    "credentials": [
      { "Key": "MerchantId", "Value": "..." },
      { "Key": "Password", "Value": "..." },
      { "Key": "RebatePWD", "Value": "your_rebate_password" }
    ]
  }
}
```

***

## First Data (FirstDataIPG)

First Data requires:

1. **Client certificate authentication** - [Upload your certificate](https://portal.orchestrasolutions.com/#/resource/certificates/create) through the Orchestra Portal
2. **Client IP address** - Provide in the `PayerDetails` object

```json theme={null}
{
  "payerDetails": {
    "clientIPAddress": "192.168.1.1"
  },
  "certificateName": "your-uploaded-certificate-name"
}
```

***

## Gateline

Gateline has the same requirements as First Data:

1. **Client certificate authentication** - [Upload via portal](https://portal.orchestrasolutions.com/#/resource/certificates/create)
2. **Client IP address** - Required in `PayerDetails`

```json theme={null}
{
  "payerDetails": {
    "clientIPAddress": "192.168.1.1"
  },
  "certificateName": "your-uploaded-certificate-name"
}
```

***

## Global Payments WebPay

The `myRef` parameter must be a **15-digit numeric value**.

```json theme={null}
{
  "myRef": "123456789012345"
}
```

***

## Heartland

Heartland has two requirements:

1. **`myRef` must be numeric only** (no letters or special characters)
2. **Integration certification required** - Orchestra's integration is certified

```json theme={null}
{
  "myRef": "123456789"
}
```

***

## Kortapay

The `OriginalAmount` parameter is **mandatory** for Void and Refund operations.

```json theme={null}
{
  "refTransId": "original-transaction-id",
  "amount": 25.00,
  "originalAmount": 25.00
}
```

***

## PayGate

Your PayGate merchant account must have the **"auto-settle" flag set to "off"**.

Configure this in your PayGate merchant dashboard before integrating.

***

## Pesopay

Pesopay has two requirements:

1. **`myRef` must be unique** on every submission
2. **Void operations** must use the `GatewayReference` from the PreAuth response, not Capture

```json theme={null}
{
  "myRef": "UNIQUE-REF-20240115-001"
}
```

***

## Stripe (PaymentIntent)

### 3D Secure Support

To enable 3DS transactions, contact Stripe and request enabling the `payment_method_options.card.request_three_d_secure` option on your account.

### Subscriptions

Use the `SetupFutureUsage` parameter to enable Stripe Subscriptions:

```json theme={null}
{
  "paymentGatewayAccount": {
    "paymentGatewayName": "StripePaymentIntent",
    "credentials": [
      { "Key": "SecretKey", "Value": "sk_live_..." },
      { "Key": "SetupFutureUsage", "Value": "off_session" }
    ]
  }
}
```

| Value         | Use Case                                        |
| ------------- | ----------------------------------------------- |
| `on_session`  | Customer present during future charges          |
| `off_session` | Recurring/subscription charges without customer |

***

## Wirecard

Wirecard uses the `OrderDesc` parameter to provide additional order description.

```json theme={null}
{
  "orderDesc": "Premium subscription - 12 months"
}
```

***

## Worldpay

Worldpay has two requirements:

1. **`IsDigital` parameter** - Required, defaults to `true`
2. **Integration certification required** - Orchestra's integration is certified

```json theme={null}
{
  "isDigital": true
}
```

***

## Zeamster

Zeamster uses the `OrderDesc` parameter to provide additional order description.

```json theme={null}
{
  "orderDesc": "Premium subscription - 12 months"
}
```

***

## Zoop

Use the `NoOfInstallments` parameter to split payments into installments (micro credit):

```json theme={null}
{
  "noOfInstallments": 6
}
```

| Value | Description                    |
| ----- | ------------------------------ |
| 1-12  | Number of monthly installments |

***

## Related

<CardGroup cols={2}>
  <Card title="Payment Operations" icon="credit-card" href="/api-reference/paymentgateway/overview">
    Full endpoint documentation
  </Card>

  <Card title="Payment Gateway Accounts" icon="building-columns" href="/api-reference/paymentgatewayaccounts/overview">
    Configure gateway credentials
  </Card>
</CardGroup>
