---
url: /relypay-whmcs/features/routing.md
description: >-
  RelyPay decides which provider takes each payment using four layers in a fixed
  order — currency, amount, volume and fallback. This page explains each layer
  and how they are evaluated.
---

# Routing

Customers choose a **payment method**; RelyPay chooses the **provider** that takes the money, resolved fresh per transaction. Configure it under **Addons → RelyPay → Routing**.

![The RelyPay routing rules screen](/relypay-whmcs/img/relypay-routing-layers.png)
*Addons → RelyPay → Routing*

::: tip Routing vs Allocations
**Routing** = which provider takes a payment. [Allocations](/relypay-whmcs/features/allocations) = which checkout options a customer sees. Separate tabs.
:::

## The four layers

Rules are evaluated in a deterministic order where the **first layer matching an active, fully-configured provider executes**:

* **First-match evaluation:** Subsequent layers are skipped once a valid match resolves.
* **Graceful degradation:** Rules pointing to unconfigured or disabled providers are bypassed automatically to prevent checkout disruptions.

| # | Layer | Scope | How it decides |
| --- | --- | --- | --- |
| 1 | **Currency routing** | non-INR | One or more providers per currency (USD, EUR, GBP…). Several providers on one currency rotate randomly by **weight** (higher = larger share). |
| 2 | **Amount routing** | INR | Amount slabs (**From ₹** / **To ₹**) → provider, each with a **priority (1–5)**. Send small tickets to a cheaper provider, larger ones elsewhere. |
| 3 | **Volume routing** | INR | Percentage split across providers (1–100%), e.g. **70% Razorpay / 30% Cashfree**. Balance load or phase in a provider. |
| 4 | **Fallback** | INR and non-INR (separate) | Default when nothing above matches — a **priority chain (1–5)**; RelyPay uses the first enabled, configured provider. |

**Resolution order** — non-INR: currency → fallback. INR: amount → volume → fallback.

## Worked examples

| Payment | Result |
| --- | --- |
| ₹499 UPI, slab ₹0–₹1000 → Cashfree | Amount slab matches → **Cashfree**. Volume/fallback never reached. |
| ₹5,000 card, no matching slab, 70/30 split | Drops to volume routing → ~70% **Razorpay**, ~30% **Cashfree**. |
| $120 card, rule USD → PayGlocal | Currency routing matches → **PayGlocal**. |
| SGD with no rule | Currency/amount/volume all miss → **non-INR fallback** chain. |

## Fallback: INR vs non-INR

Set separately, because the right providers differ:

* **INR fallback** — domestic safety net (UPI, Cards, Net Banking…). Order your best domestic providers 1–5.
* **Non-INR fallback** — international safety net (international cards, PayPal). PayGlocal usually belongs high here.

::: tip Always keep a fallback ready
Put at least one enabled, fully-configured provider at the top of each chain so customers can always pay.
:::

Activation seeds default routing with **PayGlocal** as the default recurring provider. Review and adjust under **Addons → RelyPay → Routing**.

## Related pages

* [Allocations](/relypay-whmcs/features/allocations) — which sub-gateways each customer sees
* [Sub-gateways](/relypay-whmcs/features/sub-gateways) — the checkout options customers pick
* [Configuration](/relypay-whmcs/configuration) — connect the providers routing chooses between
* [Transactions](/relypay-whmcs/features/transactions) — which provider each payment used
