---
title: "Create routing rule"
method: POST
path: "/routing/create"
tags: ["Routing Rules"]
---

# Create routing rule

`POST /routing/create`

Create a new Euclid declarative routing rule for a merchant. Supports `advanced` (full Euclid DSL), `priority` (ordered gateway list), `single` (fixed gateway), and `volume_split` (percentage-based distribution) algorithm types.

## Request body

- CreateRoutingRuleRequest
  - `name` string, required
  - `description` string
  - `created_by` string, required
  - `algorithm_for` 'payment' | 'payout' | 'three_ds_authentication'
  - `algorithm` RoutingAlgorithm, required
    - `type` 'priority' | 'single' | 'volume_split' | 'advanced' | 'ab_test', required
    - `data` unknown, required
  - `metadata` object, nullable — Free-form metadata stored with the rule.

## Response `200`

Routing rule created

- RoutingDictionaryRecord — Summary record returned when a routing rule is created.
  - `rule_id` string
  - `name` string
  - `algorithm_for` string
  - `created_at` string
  - `modified_at` string

---

[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)
