---
title: "Hybrid routing evaluation"
method: POST
path: "/routing/hybrid"
tags: ["Routing Rules"]
---

# Hybrid routing evaluation

`POST /routing/hybrid`

Evaluate hybrid routing using the active routing rule plus runtime payment context.

## Request body

- HybridRoutingRequest — At least one of `static_routing_request` or `dynamic_routing_request` must be provided.
  - `static_routing_request` EvaluateRoutingRequest
    - `created_by` string, required — Merchant that owns the routing rule.
    - `payment_id` string, nullable
    - `fallback_output` ConnectorInfo[], nullable — Connectors to fall back to when no rule matches.
      - `gateway_name` string, required
      - `gateway_id` string, nullable
    - `parameters` object, required — Map of rule-builder key to typed value. A null value means the key is present but unset.
  - `dynamic_routing_request` DecideGatewayRequest
    - `merchantId` string, required
    - `paymentInfo` PaymentInfo, required
      - `paymentId` string, required
      - `amount` number, double, required
      - `currency` string, required
      - `paymentType` 'ORDER_PAYMENT' | 'MANDATE_REGISTER' | 'EMANDATE_REGISTER' | 'MANDATE_PAYMENT' | 'EMANDATE_PAYMENT' | 'TPV_PAYMENT' | 'TPV_EMANDATE_REGISTER' | 'TPV_MANDATE_REGISTER' | 'TPV_EMANDATE_PAYMENT' | 'TPV_MANDATE_PAYMENT' | 'PARTIAL_CAPTURE' | 'PARTIAL_VOID' | 'VAN_PAYMENT', required
      - `paymentMethodType` string, required
      - `paymentMethod` string, required
      - `country` string, nullable
      - `customerId` string, nullable
      - `udfs` string[], nullable — Positional user-defined fields.
      - `preferredGateway` string, nullable
      - `metadata` string, nullable — JSON-encoded string. Carries debit-routing inputs such as merchant_category_code, acquirer_country and co_badged_card_data.
      - `internalMetadata` string, nullable
      - `isEmi` boolean, nullable
      - `emiBank` string, nullable
      - `emiTenure` integer, nullable
      - `paymentSource` string, nullable
      - `authType` 'ATMPIN' | 'THREE_DS' | 'THREE_DS_2' | 'OTP' | 'OBO_OTP' | 'VIES' | 'NO_THREE_DS' | 'NETWORK_TOKEN' | 'MOTO' | 'FIDO' | 'CTP' | 'null', nullable
      - `cardIssuerBankName` string, nullable
      - `cardIsin` string, nullable
      - `cardType` 'AADHAAR' | 'ATM_CARD' | 'CASH' | 'CREDIT' | 'DEBIT' | 'NB' | 'PAYLATER' | 'PREPAID' | 'REWARD' | 'UPI' | 'WALLET' | 'VIRTUAL_ACCOUNT' | 'OTC' | 'RTP' | 'CRYPTO' | 'BLANK' | 'PAN' | 'null', nullable
      - `cardSwitchProvider` string, nullable — Card scheme / network.
      - `cardProgram` string, nullable
      - `cardIssuerCountry` string, nullable
      - `channel` string, nullable — Acceptance channel: ecom / pos / contactless. Feeds the interchange-category predictor.
    - `eligibleGatewayList` string[], required
    - `rankingAlgorithm` 'SR_BASED_ROUTING' | 'PL_BASED_ROUTING' | 'NTW_BASED_ROUTING' | 'NTW_SR_HYBRID_ROUTING', required
    - `eliminationEnabled` boolean
    - `enableMultiObjective` boolean — Per-request override for the multi-objective (cost-aware) post-step. true forces it on, false forces it off; omitted falls back to the merchant's multi_objective_routing_enabled feature flag.

## Response `200`

OK

- HybridRoutingResponse
  - `static_routing` RoutingEvaluateResponse
    - `payment_id` string, nullable
    - `status` string
    - `output` object — Raw output of the matched rule, tagged by algorithm type (`priority`, `single`, `volume_split`, `advanced`).
    - `evaluated_output` ConnectorInfo[]
      - `gateway_name` string, required
      - `gateway_id` string, nullable
    - `eligible_connectors` ConnectorInfo[]
      - `gateway_name` string, required
      - `gateway_id` string, nullable
  - `dynamic_routing` object, nullable — Decision-gateway result, wrapped as `{status, decision, fallback_connectors}`.
  - `evaluated_connectors` ConnectorInfo[] — Connectors clients should consume. Prefer this over the per-branch outputs.
    - `gateway_name` string, required
    - `gateway_id` string, nullable

---

[API](https://skmtc.net/juspay/apis/decision-engine.md) · [All operations](https://skmtc.net/juspay/apis/decision-engine/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/juspay/decision-engine/versions/36e7a0972ee6/schema)
