# Hyperswitch Redis/DB Dependency Cascades — Full Route Coverage

**Date:** 2026-05-11  

**Source:** `<repo-root>/vendor/hyperswitch-fresh` commit `bc39324410031bec3e8c3d0ba924d81841c0c341`  

**Scope:** Exhaustive route coverage matrix generated from `raw/agent-routes.md` plus cascade templates from the traced payment/admin dependency analyses.

---

## Important correction vs previous `03_DEPENDENCY_CASCADES.md`

The earlier `03_DEPENDENCY_CASCADES.md` is **not all routes**; it is a representative/high-risk cascade document. This full version covers **every parsed route row** from the completed route catalog and maps each route to a dependency cascade template. Exact branch-specific execution can still vary by feature flag, auth path, storage scheme, cache hit/miss, connector behavior, and request body.

---

## Coverage Summary

- Parsed route rows: **509**

- Cascade template classes: **41**

- Storage paths represented: Redis KV/hash/string, DB/Diesel/Postgres, OLAP analytics, object storage/file metadata, external workflow notes.


### Routes by cascade template

| Cascade template | Route rows | Dependency shape | Ambiguity class |
|---|---:|---|---|
| `ADMIN_CONFIG_MUTATE` | 83 | admin/config mutation | `needs_db_snapshot_or_transaction_order` |
| `ACCOUNTS_MUTATE` | 51 | accounts/user/role/theme mutate | `needs_db_snapshot_or_transaction_order` |
| `ADMIN_CONFIG_READ` | 45 | admin/config read | `needs_resource_version_or_state` |
| `ACCOUNTS_READ` | 38 | accounts/user/role read | `needs_db_snapshot_or_transaction_order` |
| `PAYMENTS_MUTATING_LIFECYCLE` | 28 | payment lifecycle mutation | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` |
| `ACCOUNTS_AUTH_SESSION` | 27 | auth/session | `needs_causal_scope_plus_ordinal` |
| `PM_MUTATE_TOKEN_VAULT` | 20 | payment method mutation/token vault | `needs_stateful_redis_emulation` |
| `PAYMENTS_LIST_ANALYTICS` | 18 | payment list/analytics | `needs_db_snapshot_or_transaction_order` |
| `WEBHOOK_STATE_SYNC` | 18 | webhook state sync | `needs_stateful_redis_emulation` |
| `GENERIC_DB_OR_CONFIG` | 16 | generic db/config | `needs_resource_version_or_state` |
| `PM_READ_CROSS_SESSION` | 14 | payment method retrieve | `needs_resource_version_or_state` |
| `PAYMENTS_CREATE_OR_TOKEN` | 12 | payment create/token cascade | `needs_causal_scope_plus_ordinal` |
| `PAYOUT_MUTATE` | 11 | payout mutation | `needs_causal_scope_plus_ordinal` |
| `AUTHENTICATION_STATEFUL` | 10 | 3DS/authentication lifecycle | `needs_causal_scope_plus_ordinal` |
| `PAYMENTS_READ` | 9 | payment read/retrieve | `needs_resource_version_or_state` |
| `PAYOUT_LIST` | 9 | payout list | `needs_resource_version_or_state` |
| `DISPUTE_READ_LIST` | 9 | dispute read/list | `needs_db_snapshot_or_transaction_order` |
| `REFUND_LIST_SCAN` | 8 | refund list | `needs_resource_version_or_state` |
| `PAYOUT_READ` | 7 | payout retrieve/link render | `needs_resource_version_or_state` |
| `RECOVERY_PROCESS_TRACKER` | 7 | recovery/process tracker | `needs_resource_version_or_state` |
| `CUSTOMER_MUTATE` | 6 | customer create/update/delete | `needs_causal_scope_plus_ordinal` |
| `APIKEY_MUTATE_CACHE` | 6 | api key mutation/cache | `needs_stateful_redis_emulation` |
| `CUSTOMER_READ` | 5 | customer retrieve | `needs_resource_version_or_state` |
| `PM_LIST_SCAN` | 5 | payment method list | `needs_resource_version_or_state` |
| `REFUND_MUTATE` | 5 | refund create/update | `needs_causal_scope_plus_ordinal` |
| `NO_DEP_HEALTH` | 4 | No persistent dependency | `signature_only_safe` |
| `CUSTOMER_LIST` | 4 | customer list | `needs_db_snapshot_or_transaction_order` |
| `REFUND_READ_SYNC` | 4 | refund retrieve/sync | `needs_resource_version_or_state` |
| `PM_DELETE_TOKEN_STATE` | 4 | payment method delete | `needs_stateful_redis_emulation` |
| `EPHEMERAL_KEY_REDIS_HASH` | 4 | ephemeral key | `needs_stateful_redis_emulation` |
| `APIKEY_READ_CACHE` | 4 | api key read/list cache | `needs_stateful_redis_emulation` |
| `DISPUTE_MUTATE` | 4 | dispute mutation | `needs_causal_scope_plus_ordinal` |
| `CARD_MUTATE` | 3 | card metadata mutate | `needs_resource_version_or_state` |
| `FILE_DB_STORAGE` | 3 | file metadata/object storage | `needs_causal_scope_plus_ordinal` |
| `CHAT_OLAP` | 2 | chat/AI workflow | `unsafe_without_driver_context` |
| `CACHE_INVALIDATE` | 1 | Redis/cache write/delete | `needs_stateful_redis_emulation` |
| `MANDATE_LIST` | 1 | mandate list | `needs_resource_version_or_state` |
| `MANDATE_READ` | 1 | mandate retrieve | `needs_resource_version_or_state` |
| `MANDATE_MUTATE` | 1 | mandate revoke/update | `needs_causal_scope_plus_ordinal` |
| `CARD_BIN_READ` | 1 | card/bin read | `per_signature_fifo_maybe_ok` |
| `OLAP_ANALYTICS_READ` | 1 | OLAP analytics | `needs_db_snapshot_or_transaction_order` |

---

## Dependency Sequence Templates

These templates are intentionally shared across route families so the per-route table can cover all 509 rows without duplicating hundreds of near-identical sequences.

### `NO_DEP_HEALTH` — No persistent dependency

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | App | Read | in-memory health/config only | signature_only_safe |

**Notes:** handler returns health/readiness; no Redis/DB cascade expected

### `CACHE_INVALIDATE` — Redis/cache write/delete

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | DEL/PUBLISH cache invalidation | needs_stateful_redis_emulation |
| 2 | DB | Read/Write | optional config/audit write | needs_stateful_redis_emulation |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_stateful_redis_emulation |

**Notes:** explicit cache invalidation mutates shared Redis state

### `PAYMENTS_CREATE_OR_TOKEN` — payment create/token cascade

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL | needs_causal_scope_plus_ordinal |
| 2 | DB | Read/Write | INSERT payment_intent/payment_attempt; fallback SELECT | needs_causal_scope_plus_ordinal |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_causal_scope_plus_ordinal |

**Notes:** mutable payment lifecycle; may include token vault

### `PAYMENTS_MUTATING_LIFECYCLE` — payment lifecycle mutation

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent | needs_causal_scope_plus_ordinal + stateful_redis_emulation |
| 2 | DB | Read/Write | SELECT fallback → UPDATE/INSERT attempt/intent | needs_causal_scope_plus_ordinal + stateful_redis_emulation |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_causal_scope_plus_ordinal + stateful_redis_emulation |

**Notes:** same-key read-after-write and token read-delete can occur

### `PAYMENTS_READ` — payment read/retrieve

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET intent/attempt/payment_method; cache GET | needs_resource_version_or_state |
| 2 | DB | Read | SELECT fallback | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** same signature can read different lifecycle versions

### `PAYMENTS_LIST_ANALYTICS` — payment list/analytics

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | optional cache GET/HGET or SCAN/list keys | needs_db_snapshot_or_transaction_order |
| 2 | DB/OLAP | Read | SELECT/list/filter/aggregate snapshot | needs_db_snapshot_or_transaction_order |
| 3 | Redis | Write | optional cache populate | cache state may differ |

**Notes:** result sets vary after writes

### `PM_MUTATE_TOKEN_VAULT` — payment method mutation/token vault

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET | needs_stateful_redis_emulation |
| 2 | DB | Read/Write | INSERT/UPDATE payment_method | needs_stateful_redis_emulation |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_stateful_redis_emulation |

**Notes:** token/CVC keys and PM records live across sessions

### `PM_READ_CROSS_SESSION` — payment method retrieve

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET payment_method; optional GET token/CVC | needs_resource_version_or_state |
| 2 | DB | Read | SELECT fallback | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** payment_method_id is cross-session and mutable

### `PM_DELETE_TOKEN_STATE` — payment method delete

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET payment_method → DEL/HSET tombstone/token cleanup | needs_stateful_redis_emulation |
| 2 | DB | Read/Write | UPDATE/DELETE payment_method | needs_stateful_redis_emulation |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_stateful_redis_emulation |

**Notes:** delete changes subsequent identical reads

### `PM_LIST_SCAN` — payment method list

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | optional cache GET/HGET or SCAN/list keys | needs_resource_version_or_state |
| 2 | DB/OLAP | Read | SELECT/list/filter/aggregate snapshot | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate | cache state may differ |

**Notes:** list result sets vary

### `REFUND_MUTATE` — refund create/update

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET payment_intent → SCAN/HGET refund → HSET refund/reverse_lookup | needs_causal_scope_plus_ordinal |
| 2 | DB | Read/Write | INSERT/UPDATE refund | needs_causal_scope_plus_ordinal |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_causal_scope_plus_ordinal |

**Notes:** refund status and idempotency set changes

### `REFUND_READ_SYNC` — refund retrieve/sync

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET refund | needs_resource_version_or_state |
| 2 | DB | Read | SELECT fallback; optional UPDATE on sync | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** refund status can change after gateway sync/webhook

### `REFUND_LIST_SCAN` — refund list

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | optional cache GET/HGET or SCAN/list keys | needs_resource_version_or_state |
| 2 | DB/OLAP | Read | SELECT/list/filter/aggregate snapshot | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate | cache state may differ |

**Notes:** SCAN/list set changes over time

### `CUSTOMER_MUTATE` — customer create/update/delete

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET duplicate/existing → HSET/DEL customer/reverse_lookup | needs_causal_scope_plus_ordinal |
| 2 | DB | Read/Write | INSERT/UPDATE/DELETE customer | needs_causal_scope_plus_ordinal |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_causal_scope_plus_ordinal |

**Notes:** customer record mutable and cross-session

### `CUSTOMER_READ` — customer retrieve

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET customer | needs_resource_version_or_state |
| 2 | DB | Read | SELECT fallback | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** customer_id is cross-session mutable

### `CUSTOMER_LIST` — customer list

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | optional cache GET/HGET or SCAN/list keys | needs_db_snapshot_or_transaction_order |
| 2 | DB/OLAP | Read | SELECT/list/filter/aggregate snapshot | needs_db_snapshot_or_transaction_order |
| 3 | Redis | Write | optional cache populate | cache state may differ |

**Notes:** list results vary

### `MANDATE_MUTATE` — mandate revoke/update

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET mandate → HSET mandate | needs_causal_scope_plus_ordinal |
| 2 | DB | Read/Write | SELECT fallback → UPDATE mandate | needs_causal_scope_plus_ordinal |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_causal_scope_plus_ordinal |

**Notes:** mandate status changes

### `MANDATE_READ` — mandate retrieve

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET mandate/payment_method | needs_resource_version_or_state |
| 2 | DB | Read | SELECT fallback | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** mandate/payment method can evolve

### `MANDATE_LIST` — mandate list

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | optional cache GET/HGET or SCAN/list keys | needs_resource_version_or_state |
| 2 | DB/OLAP | Read | SELECT/list/filter/aggregate snapshot | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate | cache state may differ |

**Notes:** list result variability

### `PAYOUT_MUTATE` — payout mutation

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET/HSET payout; optional reverse_lookup | needs_causal_scope_plus_ordinal |
| 2 | DB | Read/Write | INSERT/UPDATE payout | needs_causal_scope_plus_ordinal |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_causal_scope_plus_ordinal |

**Notes:** payout lifecycle mutable

### `PAYOUT_READ` — payout retrieve/link render

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET payout/link data | needs_resource_version_or_state |
| 2 | DB | Read | SELECT fallback | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** payout/link state can change

### `PAYOUT_LIST` — payout list

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | optional cache GET/HGET or SCAN/list keys | needs_resource_version_or_state |
| 2 | DB/OLAP | Read | SELECT/list/filter/aggregate snapshot | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate | cache state may differ |

**Notes:** list result variability

### `WEBHOOK_STATE_SYNC` — webhook state sync

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | merchant/connector config + reverse_lookup | needs_stateful_redis_emulation |
| 2 | Redis/DB | Read | target payment/refund/dispute entity | needs_stateful_redis_emulation |
| 3 | DB | Write | UPDATE target state/idempotency record | transaction/order matters |
| 4 | Redis | Write | HSET target/cache + optional publish | same-key read-after-write |

**Notes:** reverse lookup target mutable; webhook idempotency/status transitions

### `APIKEY_MUTATE_CACHE` — api key mutation/cache

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | SETEX/HSET api_key cache; invalidation | needs_stateful_redis_emulation |
| 2 | DB | Read/Write | INSERT/UPDATE/DELETE api_keys | needs_stateful_redis_emulation |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_stateful_redis_emulation |

**Notes:** key/list cache changes

### `APIKEY_READ_CACHE` — api key read/list cache

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | GET/HGET api_key cache | needs_stateful_redis_emulation |
| 2 | DB | Read | SELECT/list fallback | needs_stateful_redis_emulation |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** cache miss/populate pattern

### `ADMIN_CONFIG_MUTATE` — admin/config mutation

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache GET/DEL/SET optional; publish invalidation | needs_db_snapshot_or_transaction_order |
| 2 | DB | Read/Write | INSERT/UPDATE/DELETE config/account/profile/connector rows | needs_db_snapshot_or_transaction_order |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_db_snapshot_or_transaction_order |

**Notes:** admin config is long-lived cross-session state

### `ADMIN_CONFIG_READ` — admin/config read

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache GET/HGET optional | needs_resource_version_or_state |
| 2 | DB | Read | SELECT/list config/account/profile/connector rows | needs_resource_version_or_state |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** config can be updated between identical reads

### `ACCOUNTS_AUTH_SESSION` — auth/session

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | DB | Read | SELECT user/org/role/auth state | needs_causal_scope_plus_ordinal |
| 2 | Redis | Read/Write | session/cache SETEX/DEL optional; 2FA state reads | needs_causal_scope_plus_ordinal |
| 3 | DB | Write | UPDATE login/auth/session metadata | transaction/order matters |

**Notes:** auth/session state mutates and tokens expire

### `ACCOUNTS_READ` — accounts/user/role read

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache read optional | needs_db_snapshot_or_transaction_order |
| 2 | DB | Read | SELECT user/org/role/theme/list | needs_db_snapshot_or_transaction_order |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** account hierarchy/list changes

### `ACCOUNTS_MUTATE` — accounts/user/role/theme mutate

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache invalidation/session writes optional | needs_db_snapshot_or_transaction_order |
| 2 | DB | Read/Write | INSERT/UPDATE/DELETE user/org/role/theme | needs_db_snapshot_or_transaction_order |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_db_snapshot_or_transaction_order |

**Notes:** long-lived account state

### `DISPUTE_MUTATE` — dispute mutation

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache/HGET optional | needs_causal_scope_plus_ordinal |
| 2 | DB | Read/Write | SELECT dispute → UPDATE/INSERT evidence/status | needs_causal_scope_plus_ordinal |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_causal_scope_plus_ordinal |

**Notes:** dispute status/evidence changes

### `DISPUTE_READ_LIST` — dispute read/list

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | optional cache GET/HGET or SCAN/list keys | needs_db_snapshot_or_transaction_order |
| 2 | DB/OLAP | Read | SELECT/list/filter/aggregate snapshot | needs_db_snapshot_or_transaction_order |
| 3 | Redis | Write | optional cache populate | cache state may differ |

**Notes:** list/aggregate results vary

### `OLAP_ANALYTICS_READ` — OLAP analytics

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | optional cache GET/HGET or SCAN/list keys | needs_db_snapshot_or_transaction_order |
| 2 | DB/OLAP | Read | SELECT/list/filter/aggregate snapshot | needs_db_snapshot_or_transaction_order |
| 3 | Redis | Write | optional cache populate | cache state may differ |

**Notes:** aggregate/list snapshots vary

### `CARD_BIN_READ` — card/bin read

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache GET optional | per_signature_fifo_maybe_ok |
| 2 | DB | Read | SELECT/card info lookup | per_signature_fifo_maybe_ok |
| 3 | Redis | Write | optional cache populate on miss | cache state may differ |

**Notes:** mostly reference data but cache can vary

### `CARD_MUTATE` — card metadata mutate

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache SET/DEL optional | needs_resource_version_or_state |
| 2 | DB | Read/Write | INSERT/UPDATE card info | needs_resource_version_or_state |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_resource_version_or_state |

**Notes:** BIN/card metadata mutable

### `FILE_DB_STORAGE` — file metadata/object storage

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache optional | needs_causal_scope_plus_ordinal |
| 2 | DB | Read/Write | INSERT/SELECT/DELETE file metadata + object storage side effects | needs_causal_scope_plus_ordinal |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_causal_scope_plus_ordinal |

**Notes:** file object lifecycle mutable

### `EPHEMERAL_KEY_REDIS_HASH` — ephemeral key

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | HGET/HSET ephemeral key hash | needs_stateful_redis_emulation |
| 2 | DB | Read/Write | DB fallback optional | needs_stateful_redis_emulation |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_stateful_redis_emulation |

**Notes:** TTL-bound Redis hash state

### `AUTHENTICATION_STATEFUL` — 3DS/authentication lifecycle

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | DB | Read | SELECT user/org/role/auth state | needs_causal_scope_plus_ordinal |
| 2 | Redis | Read/Write | HGET/HSET authentication/session/token data | needs_causal_scope_plus_ordinal |
| 3 | DB | Write | UPDATE login/auth/session metadata | transaction/order matters |

**Notes:** authn status changes through lifecycle

### `RECOVERY_PROCESS_TRACKER` — recovery/process tracker

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | GET/HGET recovery redis data; process status cache | needs_resource_version_or_state |
| 2 | DB | Read/Write | SELECT/UPDATE process tracker/recovery rows | needs_resource_version_or_state |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_resource_version_or_state |

**Notes:** workflow status and redis data mutable

### `CHAT_OLAP` — chat/AI workflow

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache optional | unsafe_without_driver_context |
| 2 | DB | Read/Write | SELECT/list conversations; external AI workflow | unsafe_without_driver_context |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | unsafe_without_driver_context |

**Notes:** external workflow plus conversation state

### `GENERIC_DB_OR_CONFIG` — generic db/config

| Seq | Dependency | R/W | Operation / query shape | Replay concern |
|---:|---|---|---|---|
| 1 | Redis | Read | cache optional | needs_resource_version_or_state |
| 2 | DB | Read/Write | SELECT/INSERT/UPDATE/DELETE depending method | needs_resource_version_or_state |
| 3 | Redis | Write/Delete | cache/KV/reverse_lookup/session update if enabled | needs_resource_version_or_state |

**Notes:** route not deeply classified; assume stateful storage if non-health

---

## Full Per-Route Cascade Coverage Matrix

| # | route_id | Method | Full path | Domain | Handler | Route registration | Cascade template | Ordered dependency summary | Ambiguity class | Confidence |

|---:|---|---|---|---|---|---|---|---|---|---|
| 1 | `001.system.get.health` | GET | `/health` | System | `health` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:702` | `NO_DEP_HEALTH` | none ⇒ none | `signature_only_safe` | high |
| 2 | `002.system.get.health.ready` | GET | `/health/ready` | System | `deep_health_check` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:703` | `NO_DEP_HEALTH` | none ⇒ none | `signature_only_safe` | high |
| 3 | `003.system.get.v2.health` | GET | `/v2/health` | System | `health` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:712` | `NO_DEP_HEALTH` | none ⇒ none | `signature_only_safe` | high |
| 4 | `004.system.get.v2.health.ready` | GET | `/v2/health/ready` | System | `deep_health_check` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:713` | `NO_DEP_HEALTH` | none ⇒ none | `signature_only_safe` | high |
| 5 | `005.system.post.cache.invalidate.key` | POST | `/cache/invalidate/{key}` | System | `invalidate` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2370` | `CACHE_INVALIDATE` | DEL/PUBLISH cache invalidation ⇒ optional config/audit write | `needs_stateful_redis_emulation` | high |
| 6 | `006.auth.get.well.known.openid.configuration` | GET | `/.well-known/openid-configuration` | Auth | `oidc::oidc_discovery` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1838` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 7 | `007.auth.get.oauth2.jwks` | GET | `/oauth2/jwks` | Auth | `oidc::jwks_endpoint` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1840` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 8 | `008.auth.get.oidc.authorize` | GET | `/oidc/authorize` | Auth | `oidc::oidc_authorize` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1841` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 9 | `009.auth.post.oauth2.token` | POST | `/oauth2/token` | Auth | `oidc::oidc_token` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1842` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 10 | `010.payments.get.payments.list` | GET | `/payments/list` | Payments | `payments::payments_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:922` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 11 | `011.payments.post.payments.list` | POST | `/payments/list` | Payments | `payments::payments_list_by_filter` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:923` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 12 | `012.payments.get.payments.profile.list` | GET | `/payments/profile/list` | Payments | `payments::profile_payments_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:927` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 13 | `013.payments.post.payments.profile.list` | POST | `/payments/profile/list` | Payments | `payments::profile_payments_list_by_filter` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:928` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 14 | `014.payments.post.payments.filter` | POST | `/payments/filter` | Payments | `payments::get_filters_for_payments` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:932` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 15 | `015.payments.get.payments.v2.filter` | GET | `/payments/v2/filter` | Payments | `payments::get_payment_filters` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:935` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 16 | `016.payments.get.payments.aggregate` | GET | `/payments/aggregate` | Payments | `payments::get_payments_aggregates` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:939` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 17 | `017.payments.get.payments.profile.aggregate` | GET | `/payments/profile/aggregate` | Payments | `payments::get_payments_aggregates_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:943` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 18 | `018.payments.get.payments.v2.profile.filter` | GET | `/payments/v2/profile/filter` | Payments | `payments::get_payment_filters_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:947` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 19 | `019.payments.put.payments.payment.id.manual.update` | PUT | `/payments/{payment_id}/manual-update` | Payments | `payments::payments_manual_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:951` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 20 | `020.payments.post.payments` | POST | `/payments` | Payments | `payments::payments_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:957` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 21 | `021.payments.post.payments.session.tokens` | POST | `/payments/session_tokens` | Payments | `payments::payments_connector_session` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:960` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 22 | `022.payments.post.payments.sync` | POST | `/payments/sync` | Payments | `payments::payments_retrieve_with_gateway_creds` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:964` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 23 | `023.payments.get.payments.payment.id` | GET | `/payments/{payment_id}` | Payments | `payments::payments_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:968` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 24 | `024.payments.post.payments.payment.id` | POST | `/payments/{payment_id}` | Payments | `payments::payments_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:969` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 25 | `025.payments.post.payments.payment.id.post.session.tokens` | POST | `/payments/{payment_id}/post_session_tokens` | Payments | `payments::payments_post_session_tokens` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:972` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 26 | `026.payments.post.payments.payment.id.confirm` | POST | `/payments/{payment_id}/confirm` | Payments | `payments::payments_confirm` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:975` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 27 | `027.payments.post.payments.payment.id.cancel` | POST | `/payments/{payment_id}/cancel` | Payments | `payments::payments_cancel` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:978` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 28 | `028.payments.post.payments.payment.id.cancel.post.capture` | POST | `/payments/{payment_id}/cancel_post_capture` | Payments | `payments::payments_cancel_post_capture` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:981` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 29 | `029.payments.post.payments.payment.id.capture` | POST | `/payments/{payment_id}/capture` | Payments | `payments::payments_capture` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:984` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 30 | `030.payments.post.payments.payment.id.approve` | POST | `/payments/{payment_id}/approve` | Payments | `payments::payments_approve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:988` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 31 | `031.payments.post.payments.payment.id.reject` | POST | `/payments/{payment_id}/reject` | Payments | `payments::payments_reject` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:992` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 32 | `032.payments.post.payments.payment.id.eligibility` | POST | `/payments/{payment_id}/eligibility` | Payments | `payments::payments_submit_eligibility` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:996` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 33 | `033.payments.get.payments.redirect.payment.id.merchant.id.attempt.id` | GET | `/payments/redirect/{payment_id}/{merchant_id}/{attempt_id}` | Payments | `payments::payments_start` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1000` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 34 | `034.payments.get.payments.payment.id.merchant.id.redirect.response.connector.creds.i` | GET | `/payments/{payment_id}/{merchant_id}/redirect/response/{connector}/{creds_identifier}` | Payments | `payments::payments_redirect_response_with_creds_identifier` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1006` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 35 | `035.payments.get.payments.payment.id.merchant.id.redirect.response.connector` | GET | `/payments/{payment_id}/{merchant_id}/redirect/response/{connector}` | Payments | `payments::payments_redirect_response` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1010` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 36 | `036.payments.post.payments.payment.id.merchant.id.redirect.response.connector` | POST | `/payments/{payment_id}/{merchant_id}/redirect/response/{connector}` | Payments | `payments::payments_redirect_response` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1011` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 37 | `037.payments.get.payments.payment.id.merchant.id.redirect.complete.connector.creds.i` | GET | `/payments/{payment_id}/{merchant_id}/redirect/complete/{connector}/{creds_identifier}` | Payments | `payments::payments_complete_authorize_redirect_with_creds_identifier` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1015` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 38 | `038.payments.post.payments.payment.id.merchant.id.redirect.complete.connector.creds.` | POST | `/payments/{payment_id}/{merchant_id}/redirect/complete/{connector}/{creds_identifier}` | Payments | `payments::payments_complete_authorize_redirect_with_creds_identifier` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1016` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 39 | `039.payments.get.payments.payment.id.merchant.id.redirect.complete.connector` | GET | `/payments/{payment_id}/{merchant_id}/redirect/complete/{connector}` | Payments | `payments::payments_complete_authorize_redirect` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1020` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 40 | `040.payments.post.payments.payment.id.merchant.id.redirect.complete.connector` | POST | `/payments/{payment_id}/{merchant_id}/redirect/complete/{connector}` | Payments | `payments::payments_complete_authorize_redirect` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1021` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 41 | `041.payments.post.payments.payment.id.complete.authorize` | POST | `/payments/{payment_id}/complete_authorize` | Payments | `payments::payments_complete_authorize` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1025` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 42 | `042.payments.post.payments.payment.id.incremental.authorization` | POST | `/payments/{payment_id}/incremental_authorization` | Payments | `payments::payments_incremental_authorization` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1028` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 43 | `043.payments.post.payments.payment.id.extend.authorization` | POST | `/payments/{payment_id}/extend_authorization` | Payments | `payments::payments_extend_authorization` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1031` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 44 | `044.payments.post.payments.payment.id.merchant.id.authorize.connector` | POST | `/payments/{payment_id}/{merchant_id}/authorize/{connector}` | Payments | `payments::post_3ds_payments_authorize` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1035` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 45 | `045.payments.get.payments.payment.id.merchant.id.authorize.connector` | GET | `/payments/{payment_id}/{merchant_id}/authorize/{connector}` | Payments | `payments::post_3ds_payments_authorize` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1036` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 46 | `046.payments.post.payments.payment.id.3ds.authentication` | POST | `/payments/{payment_id}/3ds/authentication` | Payments | `payments::payments_external_authentication` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1039` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 47 | `047.payments.get.payments.payment.id.extended.card.info` | GET | `/payments/{payment_id}/extended_card_info` | Payments | `payments::retrieve_extended_card_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1042` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 48 | `048.payments.post.payments.payment.id.calculate.tax` | POST | `/payments/{payment_id}/calculate_tax` | Payments | `payments::payments_dynamic_tax_calculation` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1046` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 49 | `049.payments.post.payments.payment.id.update.metadata` | POST | `/payments/{payment_id}/update_metadata` | Payments | `payments::payments_update_metadata` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1050` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 50 | `050.payments.post.v2.payments.create.intent` | POST | `/v2/payments/create-intent` | Payments | `payments::payments_create_intent` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:781` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 51 | `051.payments.get.v2.payments.filter` | GET | `/v2/payments/filter` | Payments | `payments::get_payment_filters` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:783` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 52 | `052.payments.get.v2.payments.profile.filter` | GET | `/v2/payments/profile/filter` | Payments | `payments::get_payment_filters_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:786` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 53 | `053.payments.post.v2.payments` | POST | `/v2/payments` | Payments | `payments::payments_create_and_confirm_intent` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:790` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 54 | `054.payments.get.v2.payments.list` | GET | `/v2/payments/list` | Payments | `payments::payments_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:792` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 55 | `055.payments.get.v2.payments.recovery.list` | GET | `/v2/payments/recovery-list` | Payments | `payments::revenue_recovery_invoices_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:795` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 56 | `056.payments.get.v2.payments.aggregate` | GET | `/v2/payments/aggregate` | Payments | `payments::get_payments_aggregates` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:798` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 57 | `057.payments.post.v2.payments.recovery` | POST | `/v2/payments/recovery` | Payments | `payments::recovery_payments_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:802` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 58 | `058.payments.get.v2.payments.profile.aggregate` | GET | `/v2/payments/profile/aggregate` | Payments | `payments::get_payments_aggregates_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:806` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 59 | `059.payments.get.v2.payments.ref.merchant.reference.id` | GET | `/v2/payments/ref/{merchant_reference_id}` | Payments | `payments::payment_get_intent_using_merchant_reference_id` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:812` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 60 | `060.payments.post.v2.payments.payment.id.confirm.intent` | POST | `/v2/payments/{payment_id}/confirm-intent` | Payments | `payments::payment_confirm_intent` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:819` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 61 | `061.payments.get.v2.payments.payment.id.list.attempts` | GET | `/v2/payments/{payment_id}/list_attempts` | Payments | `payments::list_payment_attempts` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:824` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 62 | `062.payments.get.v2.payments.payment.id.list.attempts` | GET | `/v2/payments/{payment_id}/list-attempts` | Payments | `payments::list_payment_attempts` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:828` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 63 | `063.payments.post.v2.payments.payment.id.proxy.confirm.intent` | POST | `/v2/payments/{payment_id}/proxy-confirm-intent` | Payments | `payments::proxy_confirm_intent` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:832` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 64 | `064.payments.post.v2.payments.payment.id.confirm.intent.external.vault.proxy` | POST | `/v2/payments/{payment_id}/confirm-intent/external-vault-proxy` | Payments | `payments::confirm_intent_with_external_vault_proxy` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:836` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 65 | `065.payments.get.v2.payments.payment.id.get.intent` | GET | `/v2/payments/{payment_id}/get-intent` | Payments | `payments::payments_get_intent` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:840` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 66 | `066.payments.get.v2.payments.payment.id.get.revenue.recovery.intent` | GET | `/v2/payments/{payment_id}/get-revenue-recovery-intent` | Payments | `payments::revenue_recovery_get_intent` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:844` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 67 | `067.payments.put.v2.payments.payment.id.update.intent` | PUT | `/v2/payments/{payment_id}/update-intent` | Payments | `payments::payments_update_intent` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:848` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 68 | `068.payments.post.v2.payments.payment.id.create.external.sdk.tokens` | POST | `/v2/payments/{payment_id}/create-external-sdk-tokens` | Payments | `payments::payments_connector_session` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:852` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 69 | `069.payments.get.v2.payments.payment.id` | GET | `/v2/payments/{payment_id}` | Payments | `payments::payment_status` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:856` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 70 | `070.payments.post.v2.payments.payment.id` | POST | `/v2/payments/{payment_id}` | Payments | `payments::payments_status_with_gateway_creds` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:857` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 71 | `071.payments.get.v2.payments.payment.id.start.redirection` | GET | `/v2/payments/{payment_id}/start-redirection` | Payments | `payments::payments_start_redirection` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:861` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 72 | `072.payments.get.v2.payments.payment.id.payment.methods` | GET | `/v2/payments/{payment_id}/payment-methods` | Payments | `payments::list_payment_methods` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:864` | `PAYMENTS_LIST_ANALYTICS` | optional SCAN/cache reads ⇒ SELECT/list/filter/aggregate queries | `needs_db_snapshot_or_transaction_order` | high |
| 73 | `073.payments.post.v2.payments.payment.id.eligibility.check.balance.and.apply.pm.data` | POST | `/v2/payments/{payment_id}/eligibility/check-balance-and-apply-pm-data` | Payments | `payments::payments_apply_pm_data` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:868` | `PAYMENTS_CREATE_OR_TOKEN` | HGET/HSET payment_intent + payment_attempt; optional token GET/DEL ⇒ INSERT payment_intent/payment_attempt; fallback SELECT | `needs_causal_scope_plus_ordinal` | high |
| 74 | `074.payments.get.v2.payments.payment.id.finish.redirection.publishable.key.profile.i` | GET | `/v2/payments/{payment_id}/finish-redirection/{publishable_key}/{profile_id}` | Payments | `payments::payments_finish_redirection` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:872` | `PAYMENTS_READ` | HGET intent/attempt/payment_method; cache GET ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 75 | `075.payments.post.v2.payments.payment.id.capture` | POST | `/v2/payments/{payment_id}/capture` | Payments | `payments::payments_capture` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:875` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 76 | `076.payments.post.v2.payments.payment.id.cancel` | POST | `/v2/payments/{payment_id}/cancel` | Payments | `payments::payments_cancel` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:877` | `PAYMENTS_MUTATING_LIFECYCLE` | HGET intent/attempt/config → optional token GET/DEL → HSET attempt/intent ⇒ SELECT fallback → UPDATE/INSERT attempt/intent | `needs_causal_scope_plus_ordinal + stateful_redis_emulation` | high |
| 77 | `077.customers.get.customers.customer.id.mandates` | GET | `/customers/{customer_id}/mandates` | Customers | `customers::get_customer_mandates` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1421` | `CUSTOMER_READ` | HGET customer ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 78 | `078.customers.get.customers.list` | GET | `/customers/list` | Customers | `customers::customers_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1423` | `CUSTOMER_LIST` | optional cache/SCAN ⇒ SELECT list/filter customer | `needs_db_snapshot_or_transaction_order` | high |
| 79 | `079.customers.get.customers.list.with.count` | GET | `/customers/list_with_count` | Customers | `customers::customers_list_with_count` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1426` | `CUSTOMER_LIST` | optional cache/SCAN ⇒ SELECT list/filter customer | `needs_db_snapshot_or_transaction_order` | high |
| 80 | `080.customers.post.customers` | POST | `/customers` | Customers | `customers::customers_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1433` | `CUSTOMER_MUTATE` | HGET duplicate/existing → HSET/DEL customer/reverse_lookup ⇒ INSERT/UPDATE/DELETE customer | `needs_causal_scope_plus_ordinal` | high |
| 81 | `081.customers.get.customers.payment.methods` | GET | `/customers/payment_methods` | Customers | `payment_methods::list_customer_payment_method_api_client` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1436` | `PM_LIST_SCAN` | SCAN/HGET customer payment methods ⇒ SELECT list by customer/merchant/status | `needs_resource_version_or_state` | high |
| 82 | `082.customers.get.customers.customer.id.payment.methods` | GET | `/customers/{customer_id}/payment_methods` | Customers | `payment_methods::list_customer_payment_method_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1441` | `PM_LIST_SCAN` | SCAN/HGET customer payment methods ⇒ SELECT list by customer/merchant/status | `needs_resource_version_or_state` | high |
| 83 | `083.customers.post.customers.customer.id.payment.methods.payment.method.id.default` | POST | `/customers/{customer_id}/payment_methods/{payment_method_id}/default` | Customers | `payment_methods::default_payment_method_set_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1445` | `PM_LIST_SCAN` | SCAN/HGET customer payment methods ⇒ SELECT list by customer/merchant/status | `needs_resource_version_or_state` | high |
| 84 | `084.customers.get.customers.customer.id` | GET | `/customers/{customer_id}` | Customers | `customers::customers_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1449` | `CUSTOMER_READ` | HGET customer ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 85 | `085.customers.post.customers.customer.id` | POST | `/customers/{customer_id}` | Customers | `customers::customers_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1450` | `CUSTOMER_MUTATE` | HGET duplicate/existing → HSET/DEL customer/reverse_lookup ⇒ INSERT/UPDATE/DELETE customer | `needs_causal_scope_plus_ordinal` | high |
| 86 | `086.customers.delete.customers.customer.id` | DELETE | `/customers/{customer_id}` | Customers | `customers::customers_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1451` | `CUSTOMER_MUTATE` | HGET duplicate/existing → HSET/DEL customer/reverse_lookup ⇒ INSERT/UPDATE/DELETE customer | `needs_causal_scope_plus_ordinal` | high |
| 87 | `087.customers.get.prefix.customers.list` | GET | `/{prefix}/customers/list` | Customers | `customers::customers_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1382` | `CUSTOMER_LIST` | optional cache/SCAN ⇒ SELECT list/filter customer | `needs_db_snapshot_or_transaction_order` | medium |
| 88 | `088.customers.get.prefix.customers.list.with.count` | GET | `/{prefix}/customers/list_with_count` | Customers | `customers::customers_list_with_count` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1385` | `CUSTOMER_LIST` | optional cache/SCAN ⇒ SELECT list/filter customer | `needs_db_snapshot_or_transaction_order` | medium |
| 89 | `089.customers.get.prefix.customers.total.payment.methods` | GET | `/{prefix}/customers/total-payment-methods` | Customers | `payment_methods::get_total_payment_method_count` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1389` | `CUSTOMER_READ` | HGET customer ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 90 | `090.customers.get.prefix.customers.id.saved.payment.methods` | GET | `/{prefix}/customers/{id}/saved-payment-methods` | Customers | `payment_methods::list_customer_payment_method_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1393` | `CUSTOMER_READ` | HGET customer ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 91 | `091.customers.post.prefix.customers` | POST | `/{prefix}/customers` | Customers | `customers::customers_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1399` | `CUSTOMER_MUTATE` | HGET duplicate/existing → HSET/DEL customer/reverse_lookup ⇒ INSERT/UPDATE/DELETE customer | `needs_causal_scope_plus_ordinal` | medium |
| 92 | `092.customers.put.prefix.customers.id` | PUT | `/{prefix}/customers/{id}` | Customers | `customers::customers_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1402` | `CUSTOMER_MUTATE` | HGET duplicate/existing → HSET/DEL customer/reverse_lookup ⇒ INSERT/UPDATE/DELETE customer | `needs_causal_scope_plus_ordinal` | medium |
| 93 | `093.customers.get.prefix.customers.id` | GET | `/{prefix}/customers/{id}` | Customers | `customers::customers_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1403` | `CUSTOMER_READ` | HGET customer ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 94 | `094.customers.delete.prefix.customers.id` | DELETE | `/{prefix}/customers/{id}` | Customers | `customers::customers_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1404` | `CUSTOMER_MUTATE` | HGET duplicate/existing → HSET/DEL customer/reverse_lookup ⇒ INSERT/UPDATE/DELETE customer | `needs_causal_scope_plus_ordinal` | medium |
| 95 | `095.refunds.post.refunds.list` | POST | `/refunds/list` | Refunds | `refunds_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1468` | `REFUND_LIST_SCAN` | SCAN refund:* / HGET many ⇒ SELECT list/filter refund | `needs_resource_version_or_state` | high |
| 96 | `096.refunds.post.refunds.profile.list` | POST | `/refunds/profile/list` | Refunds | `refunds_list_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1469` | `REFUND_LIST_SCAN` | SCAN refund:* / HGET many ⇒ SELECT list/filter refund | `needs_resource_version_or_state` | high |
| 97 | `097.refunds.post.refunds.filter` | POST | `/refunds/filter` | Refunds | `refunds_filter_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1470` | `REFUND_LIST_SCAN` | SCAN refund:* / HGET many ⇒ SELECT list/filter refund | `needs_resource_version_or_state` | high |
| 98 | `098.refunds.get.refunds.v2.filter` | GET | `/refunds/v2/filter` | Refunds | `get_refunds_filters` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1471` | `REFUND_LIST_SCAN` | SCAN refund:* / HGET many ⇒ SELECT list/filter refund | `needs_resource_version_or_state` | high |
| 99 | `099.refunds.get.refunds.aggregate` | GET | `/refunds/aggregate` | Refunds | `get_refunds_aggregates` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1472` | `REFUND_LIST_SCAN` | SCAN refund:* / HGET many ⇒ SELECT list/filter refund | `needs_resource_version_or_state` | high |
| 100 | `100.refunds.get.refunds.profile.aggregate` | GET | `/refunds/profile/aggregate` | Refunds | `get_refunds_aggregate_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1475` | `REFUND_LIST_SCAN` | SCAN refund:* / HGET many ⇒ SELECT list/filter refund | `needs_resource_version_or_state` | high |
| 101 | `101.refunds.get.refunds.v2.profile.filter` | GET | `/refunds/v2/profile/filter` | Refunds | `get_refunds_filters_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1479` | `REFUND_LIST_SCAN` | SCAN refund:* / HGET many ⇒ SELECT list/filter refund | `needs_resource_version_or_state` | high |
| 102 | `102.refunds.put.refunds.id.manual.update` | PUT | `/refunds/{id}/manual-update` | Refunds | `refunds_manual_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1483` | `REFUND_MUTATE` | HGET payment_intent → SCAN/HGET refund → HSET refund/reverse_lookup ⇒ INSERT/UPDATE refund | `needs_causal_scope_plus_ordinal` | high |
| 103 | `103.refunds.post.refunds` | POST | `/refunds` | Refunds | `refunds_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1489` | `REFUND_MUTATE` | HGET payment_intent → SCAN/HGET refund → HSET refund/reverse_lookup ⇒ INSERT/UPDATE refund | `needs_causal_scope_plus_ordinal` | high |
| 104 | `104.refunds.post.refunds.sync` | POST | `/refunds/sync` | Refunds | `refunds_retrieve_with_body` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1490` | `REFUND_READ_SYNC` | HGET refund ⇒ SELECT fallback; optional UPDATE on sync | `needs_resource_version_or_state` | high |
| 105 | `105.refunds.get.refunds.id` | GET | `/refunds/{id}` | Refunds | `refunds_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1493` | `REFUND_READ_SYNC` | HGET refund ⇒ SELECT fallback; optional UPDATE on sync | `needs_resource_version_or_state` | high |
| 106 | `106.refunds.post.refunds.id` | POST | `/refunds/{id}` | Refunds | `refunds_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1494` | `REFUND_MUTATE` | HGET payment_intent → SCAN/HGET refund → HSET refund/reverse_lookup ⇒ INSERT/UPDATE refund | `needs_causal_scope_plus_ordinal` | high |
| 107 | `107.refunds.post.v2.refunds.list` | POST | `/v2/refunds/list` | Refunds | `refunds::refunds_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1509` | `REFUND_LIST_SCAN` | SCAN refund:* / HGET many ⇒ SELECT list/filter refund | `needs_resource_version_or_state` | high |
| 108 | `108.refunds.post.v2.refunds` | POST | `/v2/refunds` | Refunds | `refunds::refunds_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1514` | `REFUND_MUTATE` | HGET payment_intent → SCAN/HGET refund → HSET refund/reverse_lookup ⇒ INSERT/UPDATE refund | `needs_causal_scope_plus_ordinal` | high |
| 109 | `109.refunds.get.v2.refunds.id` | GET | `/v2/refunds/{id}` | Refunds | `refunds::refunds_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1517` | `REFUND_READ_SYNC` | HGET refund ⇒ SELECT fallback; optional UPDATE on sync | `needs_resource_version_or_state` | high |
| 110 | `110.refunds.post.v2.refunds.id` | POST | `/v2/refunds/{id}` | Refunds | `refunds::refunds_retrieve_with_gateway_creds` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1518` | `REFUND_READ_SYNC` | HGET refund ⇒ SELECT fallback; optional UPDATE on sync | `needs_resource_version_or_state` | high |
| 111 | `111.refunds.put.v2.refunds.id.update.metadata` | PUT | `/v2/refunds/{id}/update-metadata` | Refunds | `refunds::refunds_metadata_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1522` | `REFUND_MUTATE` | HGET payment_intent → SCAN/HGET refund → HSET refund/reverse_lookup ⇒ INSERT/UPDATE refund | `needs_causal_scope_plus_ordinal` | high |
| 112 | `112.payouts.post.payouts.create` | POST | `/payouts/create` | Payouts | `payouts_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1537` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 113 | `113.payouts.get.payouts.list` | GET | `/payouts/list` | Payouts | `payouts_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1544` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 114 | `114.payouts.post.payouts.list` | POST | `/payouts/list` | Payouts | `payouts_list_by_filter` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1545` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 115 | `115.payouts.get.payouts.aggregate` | GET | `/payouts/aggregate` | Payouts | `get_payouts_aggregates` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1547` | `PAYOUT_READ` | HGET payout/link data ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 116 | `116.payouts.get.payouts.profile.aggregate` | GET | `/payouts/profile/aggregate` | Payouts | `get_payouts_aggregates_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1550` | `PAYOUT_READ` | HGET payout/link data ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 117 | `117.payouts.get.payouts.profile.list` | GET | `/payouts/profile/list` | Payouts | `payouts_list_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1554` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 118 | `118.payouts.post.payouts.profile.list` | POST | `/payouts/profile/list` | Payouts | `payouts_list_by_filter_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1555` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 119 | `119.payouts.post.payouts.filter` | POST | `/payouts/filter` | Payouts | `payouts_list_available_filters_for_merchant` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1559` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 120 | `120.payouts.post.payouts.profile.filter` | POST | `/payouts/profile/filter` | Payouts | `payouts_list_available_filters_for_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1563` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 121 | `121.payouts.get.payouts.v2.filter` | GET | `/payouts/v2/filter` | Payouts | `get_payout_filters` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1567` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 122 | `122.payouts.get.payouts.v2.profile.filter` | GET | `/payouts/v2/profile/filter` | Payouts | `get_payout_filters_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1570` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 123 | `123.payouts.put.payouts.payout.id.manual.update` | PUT | `/payouts/{payout_id}/manual-update` | Payouts | `payouts_manual_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1575` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 124 | `124.payouts.get.payouts.payout.id` | GET | `/payouts/{payout_id}` | Payouts | `payouts_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1581` | `PAYOUT_READ` | HGET payout/link data ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 125 | `125.payouts.put.payouts.payout.id` | PUT | `/payouts/{payout_id}` | Payouts | `payouts_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1582` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 126 | `126.payouts.post.payouts.payout.id.confirm` | POST | `/payouts/{payout_id}/confirm` | Payouts | `payouts_confirm` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1584` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 127 | `127.payouts.post.payouts.payout.id.cancel` | POST | `/payouts/{payout_id}/cancel` | Payouts | `payouts_cancel` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1585` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 128 | `128.payouts.post.payouts.payout.id.fulfill` | POST | `/payouts/{payout_id}/fulfill` | Payouts | `payouts_fulfill` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1586` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 129 | `129.paymentmethods.get.payment.methods.filter` | GET | `/payment_methods/filter` | PaymentMethods | `payment_methods::list_countries_currencies_for_connector_payment_method` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1672` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 130 | `130.paymentmethods.post.payment.methods` | POST | `/payment_methods` | PaymentMethods | `payment_methods::create_payment_method_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1682` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 131 | `131.paymentmethods.get.payment.methods` | GET | `/payment_methods` | PaymentMethods | `payment_methods::list_payment_method_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1683` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 132 | `132.paymentmethods.post.payment.methods.migrate` | POST | `/payment_methods/migrate` | PaymentMethods | `payment_methods::migrate_payment_method_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1687` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 133 | `133.paymentmethods.post.payment.methods.migrate.batch` | POST | `/payment_methods/migrate-batch` | PaymentMethods | `payment_methods::migrate_payment_methods` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1691` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 134 | `134.paymentmethods.post.payment.methods.update.batch` | POST | `/payment_methods/update-batch` | PaymentMethods | `payment_methods::update_payment_methods` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1695` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 135 | `135.paymentmethods.get.payment.methods.batch` | GET | `/payment_methods/batch` | PaymentMethods | `payment_methods::payment_methods_batch_retrieve_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1699` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 136 | `136.paymentmethods.post.payment.methods.tokenize.card` | POST | `/payment_methods/tokenize-card` | PaymentMethods | `payment_methods::tokenize_card_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1703` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 137 | `137.paymentmethods.post.payment.methods.tokenize.card.batch` | POST | `/payment_methods/tokenize-card-batch` | PaymentMethods | `payment_methods::tokenize_card_batch_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1707` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 138 | `138.paymentmethods.post.payment.methods.collect` | POST | `/payment_methods/collect` | PaymentMethods | `payment_methods::initiate_pm_collect_link_flow` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1711` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 139 | `139.paymentmethods.get.payment.methods.collect.merchant.id.collect.id` | GET | `/payment_methods/collect/{merchant_id}/{collect_id}` | PaymentMethods | `payment_methods::render_pm_collect_link` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1715` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 140 | `140.paymentmethods.get.payment.methods.payment.method.id` | GET | `/payment_methods/{payment_method_id}` | PaymentMethods | `payment_methods::payment_method_retrieve_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1719` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 141 | `141.paymentmethods.delete.payment.methods.payment.method.id` | DELETE | `/payment_methods/{payment_method_id}` | PaymentMethods | `payment_methods::payment_method_delete_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1720` | `PM_DELETE_TOKEN_STATE` | HGET payment_method → DEL/HSET tombstone/token cleanup ⇒ UPDATE/DELETE payment_method | `needs_stateful_redis_emulation` | high |
| 142 | `142.paymentmethods.post.payment.methods.payment.method.id.tokenize.card` | POST | `/payment_methods/{payment_method_id}/tokenize-card` | PaymentMethods | `payment_methods::tokenize_card_using_pm_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1724` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 143 | `143.paymentmethods.post.payment.methods.payment.method.id.update` | POST | `/payment_methods/{payment_method_id}/update` | PaymentMethods | `payment_methods::payment_method_update_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1728` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 144 | `144.paymentmethods.post.payment.methods.payment.method.id.save` | POST | `/payment_methods/{payment_method_id}/save` | PaymentMethods | `payment_methods::save_payment_method_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1732` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 145 | `145.paymentmethods.post.payment.methods.auth.link` | POST | `/payment_methods/auth/link` | PaymentMethods | `pm_auth::link_token_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1735` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 146 | `146.paymentmethods.post.payment.methods.auth.exchange` | POST | `/payment_methods/auth/exchange` | PaymentMethods | `pm_auth::exchange_token` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1738` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 147 | `147.paymentmethods.get.prefix.payment.methods.filter` | GET | `/{prefix}/payment-methods/filter` | PaymentMethods | `payment_methods::list_countries_currencies_for_connector_payment_method` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1604` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 148 | `148.paymentmethods.get.prefix.payment.methods.id.details` | GET | `/{prefix}/payment-methods/{id}/details` | PaymentMethods | `payment_methods::payment_method_retrieve_olap_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1610` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 149 | `149.paymentmethods.post.prefix.payment.methods` | POST | `/{prefix}/payment-methods` | PaymentMethods | `payment_methods::create_payment_method_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1618` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | medium |
| 150 | `150.paymentmethods.post.prefix.payment.methods.create.intent` | POST | `/{prefix}/payment-methods/create-intent` | PaymentMethods | `payment_methods::create_payment_method_intent_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1622` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | medium |
| 151 | `151.paymentmethods.get.prefix.payment.methods.get.network.token.eligibility` | GET | `/{prefix}/payment-methods/get-network-token-eligibility` | PaymentMethods | `payment_methods::get_pm_nt_eligibility_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1626` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 152 | `152.paymentmethods.get.prefix.payment.methods.payment.method.id.check.network.token.` | GET | `/{prefix}/payment-methods/{payment_method_id}/check-network-token-status` | PaymentMethods | `payment_methods::network_token_status_check_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1630` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 153 | `153.paymentmethods.get.prefix.payment.methods.token.payment.method.temporary.token.d` | GET | `/{prefix}/payment-methods/token/{payment_method_temporary_token}/details` | PaymentMethods | `payment_methods::payment_method_get_token_details_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1634` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 154 | `154.paymentmethods.get.prefix.payment.methods.id` | GET | `/{prefix}/payment-methods/{id}` | PaymentMethods | `payment_methods::payment_method_retrieve_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1642` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 155 | `155.paymentmethods.delete.prefix.payment.methods.id` | DELETE | `/{prefix}/payment-methods/{id}` | PaymentMethods | `payment_methods::payment_method_delete_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1643` | `PM_DELETE_TOKEN_STATE` | HGET payment_method → DEL/HSET tombstone/token cleanup ⇒ UPDATE/DELETE payment_method | `needs_stateful_redis_emulation` | medium |
| 156 | `156.paymentmethods.get.prefix.payment.methods.id.list.enabled.payment.methods` | GET | `/{prefix}/payment-methods/{id}/list-enabled-payment-methods` | PaymentMethods | `payment_methods::payment_method_session_list_payment_methods` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1646` | `PM_LIST_SCAN` | SCAN/HGET customer payment methods ⇒ SELECT list by customer/merchant/status | `needs_resource_version_or_state` | medium |
| 157 | `157.paymentmethods.put.prefix.payment.methods.id.update.saved.payment.method` | PUT | `/{prefix}/payment-methods/{id}/update-saved-payment-method` | PaymentMethods | `payment_methods::payment_method_update_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1650` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | medium |
| 158 | `158.paymentmethods.get.prefix.payment.methods.id.get.token` | GET | `/{prefix}/payment-methods/{id}/get-token` | PaymentMethods | `payment_methods::get_payment_method_token_data` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1654` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 159 | `159.paymentmethods.post.prefix.payment.method.sessions` | POST | `/{prefix}/payment-method-sessions` | PaymentMethods | `payment_methods::payment_methods_session_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1758` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | medium |
| 160 | `160.paymentmethods.get.prefix.payment.method.sessions.payment.method.session.id` | GET | `/{prefix}/payment-method-sessions/{payment_method_session_id}` | PaymentMethods | `payment_methods::payment_methods_session_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1766` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | medium |
| 161 | `161.paymentmethods.put.prefix.payment.method.sessions.payment.method.session.id` | PUT | `/{prefix}/payment-method-sessions/{payment_method_session_id}` | PaymentMethods | `payment_methods::payment_methods_session_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1767` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | medium |
| 162 | `162.paymentmethods.delete.prefix.payment.method.sessions.payment.method.session.id` | DELETE | `/{prefix}/payment-method-sessions/{payment_method_session_id}` | PaymentMethods | `payment_methods::payment_method_session_delete_saved_payment_method` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1768` | `PM_DELETE_TOKEN_STATE` | HGET payment_method → DEL/HSET tombstone/token cleanup ⇒ UPDATE/DELETE payment_method | `needs_stateful_redis_emulation` | medium |
| 163 | `163.paymentmethods.get.prefix.payment.method.sessions.payment.method.session.id.list` | GET | `/{prefix}/payment-method-sessions/{payment_method_session_id}/list-payment-methods` | PaymentMethods | `payment_methods::payment_method_session_list_payment_methods` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1773` | `PM_LIST_SCAN` | SCAN/HGET customer payment methods ⇒ SELECT list by customer/merchant/status | `needs_resource_version_or_state` | medium |
| 164 | `164.paymentmethods.post.prefix.payment.method.sessions.payment.method.session.id.con` | POST | `/{prefix}/payment-method-sessions/{payment_method_session_id}/confirm` | PaymentMethods | `payment_methods::payment_method_session_confirm` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1777` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | medium |
| 165 | `165.paymentmethods.put.prefix.payment.method.sessions.payment.method.session.id.upda` | PUT | `/{prefix}/payment-method-sessions/{payment_method_session_id}/update-saved-payment-method` | PaymentMethods | `payment_methods::payment_method_session_update_saved_payment_method` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1780` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | medium |
| 166 | `166.tokenization.post.v2.tokenize` | POST | `/v2/tokenize` | Tokenization | `tokenization_routes::create_token_vault_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1800` | `PM_MUTATE_TOKEN_VAULT` | HGET duplicate check → HSET payment_method → SET token/CVC; reverse_lookup SET ⇒ INSERT/UPDATE payment_method | `needs_stateful_redis_emulation` | high |
| 167 | `167.tokenization.delete.v2.tokenize.id` | DELETE | `/v2/tokenize/{id}` | Tokenization | `tokenization_routes::delete_tokenized_data_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1804` | `PM_DELETE_TOKEN_STATE` | HGET payment_method → DEL/HSET tombstone/token cleanup ⇒ UPDATE/DELETE payment_method | `needs_stateful_redis_emulation` | high |
| 168 | `168.forex.get.forex.rates` | GET | `/forex/rates` | Forex | `currency::retrieve_forex` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1066` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 169 | `169.forex.get.forex.convert.from.minor` | GET | `/forex/convert_from_minor` | Forex | `currency::convert_forex` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1068` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 170 | `170.routing.get.routing.active` | GET | `/routing/active` | Routing | `routing::routing_retrieve_linked_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1099` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 171 | `171.routing.get.routing` | GET | `/routing` | Routing | `routing::list_routing_configs` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1106` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 172 | `172.routing.post.routing` | POST | `/routing` | Routing | `routing::routing_create_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1110` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 173 | `173.routing.get.routing.list.profile` | GET | `/routing/list/profile` | Routing | `routing::list_routing_configs_for_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1114` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 174 | `174.routing.post.routing.default` | POST | `/routing/default` | Routing | `routing::routing_update_default_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1120` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 175 | `175.routing.post.routing.rule.migrate` | POST | `/routing/rule/migrate` | Routing | `routing::migrate_routing_rules_for_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1129` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 176 | `176.routing.post.routing.deactivate` | POST | `/routing/deactivate` | Routing | `routing::routing_unlink_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1135` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 177 | `177.routing.put.routing.decision` | PUT | `/routing/decision` | Routing | `routing::upsert_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1141` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 178 | `178.routing.get.routing.decision` | GET | `/routing/decision` | Routing | `routing::retrieve_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1142` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 179 | `179.routing.delete.routing.decision` | DELETE | `/routing/decision` | Routing | `routing::delete_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1143` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 180 | `180.routing.put.routing.decision.surcharge` | PUT | `/routing/decision/surcharge` | Routing | `routing::upsert_surcharge_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1147` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 181 | `181.routing.get.routing.decision.surcharge` | GET | `/routing/decision/surcharge` | Routing | `routing::retrieve_surcharge_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1148` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 182 | `182.routing.delete.routing.decision.surcharge` | DELETE | `/routing/decision/surcharge` | Routing | `routing::delete_surcharge_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1149` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 183 | `183.routing.post.routing.default.profile.profile.id` | POST | `/routing/default/profile/{profile_id}` | Routing | `routing::routing_update_default_config_for_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1152` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 184 | `184.routing.get.routing.default.profile` | GET | `/routing/default/profile` | Routing | `routing::routing_retrieve_default_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1165` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 185 | `185.routing.post.routing.evaluate` | POST | `/routing/evaluate` | Routing | `routing::call_decide_gateway_open_router` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1175` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 186 | `186.routing.post.routing.feedback` | POST | `/routing/feedback` | Routing | `routing::call_update_gateway_score_open_router` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1179` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 187 | `187.routing.get.routing.payouts` | GET | `/routing/payouts` | Routing | `routing::list_routing_configs` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1188` | `PAYOUT_READ` | HGET payout/link data ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 188 | `188.routing.post.routing.payouts` | POST | `/routing/payouts` | Routing | `routing::routing_create_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1198` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 189 | `189.routing.get.routing.payouts.list.profile` | GET | `/routing/payouts/list/profile` | Routing | `routing::list_routing_configs_for_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1207` | `PAYOUT_LIST` | SCAN payout:* / cache ⇒ SELECT list/filter payout | `needs_resource_version_or_state` | high |
| 190 | `190.routing.get.routing.payouts.active` | GET | `/routing/payouts/active` | Routing | `routing::routing_retrieve_linked_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1217` | `PAYOUT_READ` | HGET payout/link data ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 191 | `191.routing.get.routing.payouts.default` | GET | `/routing/payouts/default` | Routing | `routing::routing_retrieve_default_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1229` | `PAYOUT_READ` | HGET payout/link data ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 192 | `192.routing.post.routing.payouts.default` | POST | `/routing/payouts/default` | Routing | `routing::routing_update_default_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1236` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 193 | `193.routing.post.routing.payouts.algorithm.id.activate` | POST | `/routing/payouts/{algorithm_id}/activate` | Routing | `routing::routing_link_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1246` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 194 | `194.routing.post.routing.payouts.deactivate` | POST | `/routing/payouts/deactivate` | Routing | `routing::routing_unlink_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1258` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 195 | `195.routing.post.routing.payouts.default.profile.profile.id` | POST | `/routing/payouts/default/profile/{profile_id}` | Routing | `routing::routing_update_default_config_for_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1269` | `PAYOUT_MUTATE` | HGET/HSET payout; optional reverse_lookup ⇒ INSERT/UPDATE payout | `needs_causal_scope_plus_ordinal` | high |
| 196 | `196.routing.get.routing.payouts.default.profile` | GET | `/routing/payouts/default/profile` | Routing | `routing::routing_retrieve_default_config_for_profiles` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1282` | `PAYOUT_READ` | HGET payout/link data ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 197 | `197.routing.get.routing.algorithm.id` | GET | `/routing/{algorithm_id}` | Routing | `routing::routing_retrieve_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1295` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 198 | `198.routing.post.routing.algorithm.id.activate` | POST | `/routing/{algorithm_id}/activate` | Routing | `routing::routing_link_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1298` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 199 | `199.routing.post.routing.rule.evaluate` | POST | `/routing/rule/evaluate` | Routing | `routing::evaluate_routing_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1306` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 200 | `200.routing.post.v2.routing.algorithms` | POST | `/v2/routing-algorithms` | Routing | `routing::routing_create_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1082` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 201 | `201.routing.get.v2.routing.algorithms.algorithm.id` | GET | `/v2/routing-algorithms/{algorithm_id}` | Routing | `routing::routing_retrieve_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1088` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 202 | `202.subscriptions.post.subscriptions` | POST | `/subscriptions` | Subscriptions | `subscription::create_and_confirm_subscription` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1322` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 203 | `203.subscriptions.post.subscriptions.create` | POST | `/subscriptions/create` | Subscriptions | `subscription::create_subscription` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1327` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 204 | `204.subscriptions.get.subscriptions.estimate` | GET | `/subscriptions/estimate` | Subscriptions | `subscription::get_estimate` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1331` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 205 | `205.subscriptions.get.subscriptions.items` | GET | `/subscriptions/items` | Subscriptions | `subscription::get_subscription_items` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1333` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 206 | `206.subscriptions.get.subscriptions.list` | GET | `/subscriptions/list` | Subscriptions | `subscription::list_subscriptions` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1335` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 207 | `207.subscriptions.post.subscriptions.subscription.id.confirm` | POST | `/subscriptions/{subscription_id}/confirm` | Subscriptions | `subscription::confirm_subscription` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1337` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 208 | `208.subscriptions.put.subscriptions.subscription.id.update` | PUT | `/subscriptions/{subscription_id}/update` | Subscriptions | `subscription::update_subscription` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1344` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 209 | `209.subscriptions.get.subscriptions.subscription.id` | GET | `/subscriptions/{subscription_id}` | Subscriptions | `subscription::get_subscription` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1352` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 210 | `210.subscriptions.post.subscriptions.subscription.id.pause` | POST | `/subscriptions/{subscription_id}/pause` | Subscriptions | `subscription::pause_subscription` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1356` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 211 | `211.subscriptions.post.subscriptions.subscription.id.resume` | POST | `/subscriptions/{subscription_id}/resume` | Subscriptions | `subscription::resume_subscription` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1360` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 212 | `212.subscriptions.post.subscriptions.subscription.id.cancel` | POST | `/subscriptions/{subscription_id}/cancel` | Subscriptions | `subscription::cancel_subscription` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1364` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 213 | `213.organization.post.organization` | POST | `/organization` | Organization | `admin::organization_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1894` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 214 | `214.organization.get.organization.id` | GET | `/organization/{id}` | Organization | `admin::organization_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1899` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 215 | `215.organization.put.organization.id` | PUT | `/organization/{id}` | Organization | `admin::organization_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1900` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 216 | `216.organization.post.organization.id.convert.to.platform` | POST | `/organization/{id}/convert_to_platform` | Organization | `admin::convert_organization_to_platform` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1904` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 217 | `217.organization.post.v2.organizations` | POST | `/v2/organizations` | Organization | `admin::organization_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1915` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 218 | `218.organization.get.v2.organizations.id` | GET | `/v2/organizations/{id}` | Organization | `admin::organization_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1920` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 219 | `219.organization.put.v2.organizations.id` | PUT | `/v2/organizations/{id}` | Organization | `admin::organization_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1921` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 220 | `220.organization.get.v2.organizations.id.merchant.accounts` | GET | `/v2/organizations/{id}/merchant-accounts` | Organization | `admin::merchant_account_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1925` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 221 | `221.merchantaccount.post.accounts` | POST | `/accounts` | MerchantAccount | `admin::merchant_account_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1962` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 222 | `222.merchantaccount.get.accounts.list` | GET | `/accounts/list` | MerchantAccount | `admin::merchant_account_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1963` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 223 | `223.merchantaccount.post.accounts.id.kv` | POST | `/accounts/{id}/kv` | MerchantAccount | `admin::merchant_account_toggle_kv` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1966` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 224 | `224.merchantaccount.get.accounts.id.kv` | GET | `/accounts/{id}/kv` | MerchantAccount | `admin::merchant_account_kv_status` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1967` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 225 | `225.merchantaccount.post.accounts.transfer` | POST | `/accounts/transfer` | MerchantAccount | `admin::merchant_account_transfer_keys` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1971` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 226 | `226.merchantaccount.post.accounts.kv` | POST | `/accounts/kv` | MerchantAccount | `admin::merchant_account_toggle_all_kv` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1974` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 227 | `227.merchantaccount.get.accounts.id` | GET | `/accounts/{id}` | MerchantAccount | `admin::retrieve_merchant_account` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1978` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 228 | `228.merchantaccount.post.accounts.id` | POST | `/accounts/{id}` | MerchantAccount | `admin::update_merchant_account` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1979` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 229 | `229.merchantaccount.delete.accounts.id` | DELETE | `/accounts/{id}` | MerchantAccount | `admin::delete_merchant_account` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1980` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 230 | `230.merchantaccount.post.v2.merchant.accounts` | POST | `/v2/merchant-accounts` | MerchantAccount | `admin::merchant_account_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1938` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 231 | `231.merchantaccount.get.v2.merchant.accounts.id` | GET | `/v2/merchant-accounts/{id}` | MerchantAccount | `admin::retrieve_merchant_account` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1943` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 232 | `232.merchantaccount.put.v2.merchant.accounts.id` | PUT | `/v2/merchant-accounts/{id}` | MerchantAccount | `admin::update_merchant_account` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1944` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 233 | `233.merchantaccount.get.v2.merchant.accounts.id.profiles` | GET | `/v2/merchant-accounts/{id}/profiles` | MerchantAccount | `profiles::profiles_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1947` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 234 | `234.merchantaccount.post.v2.merchant.accounts.id.kv` | POST | `/v2/merchant-accounts/{id}/kv` | MerchantAccount | `admin::merchant_account_toggle_kv` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1951` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 235 | `235.merchantaccount.get.v2.merchant.accounts.id.kv` | GET | `/v2/merchant-accounts/{id}/kv` | MerchantAccount | `admin::merchant_account_kv_status` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1952` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 236 | `236.connectors.post.account.connectors.verify` | POST | `/account/connectors/verify` | Connectors | `verify_connector::payment_connector_verify` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2022` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 237 | `237.connectors.post.account.merchant.id.connectors` | POST | `/account/{merchant_id}/connectors` | Connectors | `connector_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2026` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 238 | `238.connectors.get.account.merchant.id.connectors` | GET | `/account/{merchant_id}/connectors` | Connectors | `connector_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2027` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 239 | `239.connectors.get.account.merchant.id.connectors.merchant.connector.id` | GET | `/account/{merchant_id}/connectors/{merchant_connector_id}` | Connectors | `connector_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2031` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 240 | `240.connectors.post.account.merchant.id.connectors.merchant.connector.id` | POST | `/account/{merchant_id}/connectors/{merchant_connector_id}` | Connectors | `connector_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2032` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 241 | `241.connectors.delete.account.merchant.id.connectors.merchant.connector.id` | DELETE | `/account/{merchant_id}/connectors/{merchant_connector_id}` | Connectors | `connector_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2033` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 242 | `242.connectors.post.account.merchant.id.connectors.webhooks.merchant.connector.id` | POST | `/account/{merchant_id}/connectors/webhooks/{merchant_connector_id}` | Connectors | `connector_webhook_register` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2037` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 243 | `243.connectors.get.account.merchant.id.connectors.webhooks.merchant.connector.id` | GET | `/account/{merchant_id}/connectors/webhooks/{merchant_connector_id}` | Connectors | `retrieve_connector_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2038` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 244 | `244.connectors.get.account.payment.methods` | GET | `/account/payment_methods` | Connectors | `payment_methods::list_payment_method_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2045` | `PM_READ_CROSS_SESSION` | HGET payment_method; optional GET token/CVC ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 245 | `245.connectors.post.v2.connector.accounts` | POST | `/v2/connector-accounts` | Connectors | `connector_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:1998` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 246 | `246.connectors.put.v2.connector.accounts.id` | PUT | `/v2/connector-accounts/{id}` | Connectors | `connector_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2001` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 247 | `247.connectors.get.v2.connector.accounts.id` | GET | `/v2/connector-accounts/{id}` | Connectors | `connector_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2002` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 248 | `248.connectors.delete.v2.connector.accounts.id` | DELETE | `/v2/connector-accounts/{id}` | Connectors | `connector_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2003` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 249 | `249.profiles.post.account.account.id.business.profile` | POST | `/account/{account_id}/business_profile` | Profiles | `profiles::profile_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2488` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 250 | `250.profiles.get.account.account.id.business.profile` | GET | `/account/{account_id}/business_profile` | Profiles | `profiles::profiles_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2489` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 251 | `251.profiles.post.account.account.id.business.profile.profile.id.dynamic.routing.suc` | POST | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/success_based/create` | Profiles | `routing::create_success_based_routing` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2500` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 252 | `252.profiles.patch.account.account.id.business.profile.profile.id.dynamic.routing.su` | PATCH | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/success_based/config/{algorithm_id}` | Profiles | `routing::success_based_routing_update_configs` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2503` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 253 | `253.profiles.post.account.account.id.business.profile.profile.id.dynamic.routing.set` | POST | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/set_volume_split` | Profiles | `routing::set_dynamic_routing_volume_split` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2512` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 254 | `254.profiles.get.account.account.id.business.profile.profile.id.dynamic.routing.get.` | GET | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/get_volume_split` | Profiles | `routing::get_dynamic_routing_volume_split` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2516` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 255 | `255.profiles.post.account.account.id.business.profile.profile.id.dynamic.routing.eli` | POST | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/elimination/create` | Profiles | `routing::create_elimination_routing` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2522` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 256 | `256.profiles.patch.account.account.id.business.profile.profile.id.dynamic.routing.el` | PATCH | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/elimination/config/{algorithm_id}` | Profiles | `routing::elimination_routing_update_configs` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2525` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 257 | `257.profiles.post.account.account.id.business.profile.profile.id.dynamic.routing.con` | POST | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/contracts/toggle` | Profiles | `routing::contract_based_routing_setup_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2535` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 258 | `258.profiles.patch.account.account.id.business.profile.profile.id.dynamic.routing.co` | PATCH | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/contracts/config/{algorithm_id}` | Profiles | `routing::contract_based_routing_update_configs` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2538` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 259 | `259.profiles.get.account.account.id.business.profile.profile.id` | GET | `/account/{account_id}/business_profile/{profile_id}` | Profiles | `profiles::profile_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2552` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 260 | `260.profiles.post.account.account.id.business.profile.profile.id` | POST | `/account/{account_id}/business_profile/{profile_id}` | Profiles | `profiles::profile_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2553` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 261 | `261.profiles.delete.account.account.id.business.profile.profile.id` | DELETE | `/account/{account_id}/business_profile/{profile_id}` | Profiles | `profiles::profile_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2554` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 262 | `262.profiles.post.account.account.id.business.profile.profile.id.toggle.extended.car` | POST | `/account/{account_id}/business_profile/{profile_id}/toggle_extended_card_info` | Profiles | `profiles::toggle_extended_card_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2558` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 263 | `263.profiles.post.account.account.id.business.profile.profile.id.toggle.connector.ag` | POST | `/account/{account_id}/business_profile/{profile_id}/toggle_connector_agnostic_mit` | Profiles | `profiles::toggle_connector_agnostic_mit` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2562` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 264 | `264.profiles.post.v2.profiles` | POST | `/v2/profiles` | Profiles | `profiles::profile_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2420` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 265 | `265.profiles.get.v2.profiles.profile.id` | GET | `/v2/profiles/{profile_id}` | Profiles | `profiles::profile_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2425` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 266 | `266.profiles.put.v2.profiles.profile.id` | PUT | `/v2/profiles/{profile_id}` | Profiles | `profiles::profile_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2426` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 267 | `267.profiles.get.v2.profiles.profile.id.connector.accounts` | GET | `/v2/profiles/{profile_id}/connector-accounts` | Profiles | `admin::connector_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2430` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 268 | `268.profiles.get.v2.profiles.profile.id.fallback.routing` | GET | `/v2/profiles/{profile_id}/fallback-routing` | Profiles | `routing::routing_retrieve_default_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2434` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 269 | `269.profiles.patch.v2.profiles.profile.id.fallback.routing` | PATCH | `/v2/profiles/{profile_id}/fallback-routing` | Profiles | `routing::routing_update_default_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2435` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 270 | `270.profiles.patch.v2.profiles.profile.id.activate.routing.algorithm` | PATCH | `/v2/profiles/{profile_id}/activate-routing-algorithm` | Profiles | `routing::routing_link_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2438` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 271 | `271.profiles.patch.v2.profiles.profile.id.deactivate.routing.algorithm` | PATCH | `/v2/profiles/{profile_id}/deactivate-routing-algorithm` | Profiles | `routing::routing_unlink_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2451` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 272 | `272.profiles.get.v2.profiles.profile.id.routing.algorithm` | GET | `/v2/profiles/{profile_id}/routing-algorithm` | Profiles | `routing::routing_retrieve_linked_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2462` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 273 | `273.profiles.put.v2.profiles.profile.id.decision` | PUT | `/v2/profiles/{profile_id}/decision` | Profiles | `routing::upsert_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2475` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 274 | `274.profiles.get.v2.profiles.profile.id.decision` | GET | `/v2/profiles/{profile_id}/decision` | Profiles | `routing::retrieve_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2476` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 275 | `275.profiles.get.account.account.id.profile` | GET | `/account/{account_id}/profile` | Profiles | `profiles::profiles_list_at_profile_level` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2579` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 276 | `276.profiles.get.account.account.id.profile.connectors` | GET | `/account/{account_id}/profile/connectors` | Profiles | `admin::connector_list_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2582` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 277 | `277.ephemeralkeys.post.ephemeral.keys` | POST | `/ephemeral_keys` | EphemeralKeys | `ephemeral_key_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2059` | `EPHEMERAL_KEY_REDIS_HASH` | HGET/HSET ephemeral key hash ⇒ DB fallback optional | `needs_stateful_redis_emulation` | high |
| 278 | `278.ephemeralkeys.delete.ephemeral.keys.id` | DELETE | `/ephemeral_keys/{id}` | EphemeralKeys | `ephemeral_key_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2060` | `EPHEMERAL_KEY_REDIS_HASH` | HGET/HSET ephemeral key hash ⇒ DB fallback optional | `needs_stateful_redis_emulation` | high |
| 279 | `279.ephemeralkeys.post.v2.client.secret` | POST | `/v2/client-secret` | EphemeralKeys | `client_secret_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2069` | `EPHEMERAL_KEY_REDIS_HASH` | HGET/HSET ephemeral key hash ⇒ DB fallback optional | `needs_stateful_redis_emulation` | high |
| 280 | `280.ephemeralkeys.delete.v2.client.secret.id` | DELETE | `/v2/client-secret/{id}` | EphemeralKeys | `client_secret_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2070` | `EPHEMERAL_KEY_REDIS_HASH` | HGET/HSET ephemeral key hash ⇒ DB fallback optional | `needs_stateful_redis_emulation` | high |
| 281 | `281.mandates.get.mandates.list` | GET | `/mandates/list` | Mandates | `retrieve_mandates_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2084` | `MANDATE_LIST` | SCAN/HGET mandate set ⇒ SELECT list mandates | `needs_resource_version_or_state` | high |
| 282 | `282.mandates.get.mandates.id` | GET | `/mandates/{id}` | Mandates | `get_mandate` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2085` | `MANDATE_READ` | HGET mandate/payment_method ⇒ SELECT fallback | `needs_resource_version_or_state` | high |
| 283 | `283.mandates.post.mandates.revoke.id` | POST | `/mandates/revoke/{id}` | Mandates | `revoke_mandate` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2090` | `MANDATE_MUTATE` | HGET mandate → HSET mandate ⇒ SELECT fallback → UPDATE mandate | `needs_causal_scope_plus_ordinal` | high |
| 284 | `284.webhooks.post.webhooks.network.token.requestor.ref` | POST | `/webhooks/network_token_requestor/ref` | Webhooks | `receive_network_token_requestor_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2109` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 285 | `285.webhooks.get.webhooks.network.token.requestor.ref` | GET | `/webhooks/network_token_requestor/ref` | Webhooks | `receive_network_token_requestor_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2114` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 286 | `286.webhooks.put.webhooks.network.token.requestor.ref` | PUT | `/webhooks/network_token_requestor/ref` | Webhooks | `receive_network_token_requestor_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2119` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 287 | `287.webhooks.post.webhooks.merchant.id.connector.id.or.name` | POST | `/webhooks/{merchant_id}/{connector_id_or_name}` | Webhooks | `receive_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2127` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 288 | `288.webhooks.get.webhooks.merchant.id.connector.id.or.name` | GET | `/webhooks/{merchant_id}/{connector_id_or_name}` | Webhooks | `receive_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2129` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 289 | `289.webhooks.put.webhooks.merchant.id.connector.id.or.name` | PUT | `/webhooks/{merchant_id}/{connector_id_or_name}` | Webhooks | `receive_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2131` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 290 | `290.webhooks.post.webhooks.frm.fulfillment` | POST | `/webhooks/frm_fulfillment` | Webhooks | `frm_routes::frm_fulfillment` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2139` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 291 | `291.webhooks.post.webhooks.relay.merchant.id.connector.id` | POST | `/webhooks/relay/{merchant_id}/{connector_id}` | Webhooks | `receive_incoming_relay_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2156` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 292 | `292.webhooks.post.v2.webhooks.merchant.id.profile.id.connector.id` | POST | `/v2/webhooks/{merchant_id}/{profile_id}/{connector_id}` | Webhooks | `receive_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2172` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 293 | `293.webhooks.get.v2.webhooks.merchant.id.profile.id.connector.id` | GET | `/v2/webhooks/{merchant_id}/{profile_id}/{connector_id}` | Webhooks | `receive_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2174` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 294 | `294.webhooks.put.v2.webhooks.merchant.id.profile.id.connector.id` | PUT | `/v2/webhooks/{merchant_id}/{profile_id}/{connector_id}` | Webhooks | `receive_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2176` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 295 | `295.webhooks.post.v2.webhooks.recovery.merchant.id.profile.id.connector.id` | POST | `/v2/webhooks/recovery/{merchant_id}/{profile_id}/{connector_id}` | Webhooks | `recovery_receive_incoming_webhook` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2184` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 296 | `296.applepay.post.apple.pay.certificates.migration` | POST | `/apple_pay_certificates_migration` | ApplePay | `apple_pay_certificates_migration` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2233` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 297 | `297.system.get.poll.status.poll.id` | GET | `/poll/status/{poll_id}` | System | `poll::retrieve_poll_status` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2247` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |
| 298 | `298.apikeys.post.v2.api.keys` | POST | `/v2/api-keys` | APIKeys | `api_keys::api_key_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2259` | `APIKEY_MUTATE_CACHE` | SETEX/HSET api_key cache; invalidation ⇒ INSERT/UPDATE/DELETE api_keys | `needs_stateful_redis_emulation` | high |
| 299 | `299.apikeys.get.v2.api.keys.list` | GET | `/v2/api-keys/list` | APIKeys | `api_keys::api_key_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2260` | `APIKEY_READ_CACHE` | GET/HGET api_key cache ⇒ SELECT/list fallback | `needs_stateful_redis_emulation` | high |
| 300 | `300.apikeys.get.v2.api.keys.key.id` | GET | `/v2/api-keys/{key_id}` | APIKeys | `api_keys::api_key_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2263` | `APIKEY_READ_CACHE` | GET/HGET api_key cache ⇒ SELECT/list fallback | `needs_stateful_redis_emulation` | high |
| 301 | `301.apikeys.put.v2.api.keys.key.id` | PUT | `/v2/api-keys/{key_id}` | APIKeys | `api_keys::api_key_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2264` | `APIKEY_MUTATE_CACHE` | SETEX/HSET api_key cache; invalidation ⇒ INSERT/UPDATE/DELETE api_keys | `needs_stateful_redis_emulation` | high |
| 302 | `302.apikeys.delete.v2.api.keys.key.id` | DELETE | `/v2/api-keys/{key_id}` | APIKeys | `api_keys::api_key_revoke` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2265` | `APIKEY_MUTATE_CACHE` | SETEX/HSET api_key cache; invalidation ⇒ INSERT/UPDATE/DELETE api_keys | `needs_stateful_redis_emulation` | high |
| 303 | `303.apikeys.post.api.keys.merchant.id` | POST | `/api_keys/{merchant_id}` | APIKeys | `api_keys::api_key_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2275` | `APIKEY_MUTATE_CACHE` | SETEX/HSET api_key cache; invalidation ⇒ INSERT/UPDATE/DELETE api_keys | `needs_stateful_redis_emulation` | high |
| 304 | `304.apikeys.get.api.keys.merchant.id.list` | GET | `/api_keys/{merchant_id}/list` | APIKeys | `api_keys::api_key_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2276` | `APIKEY_READ_CACHE` | GET/HGET api_key cache ⇒ SELECT/list fallback | `needs_stateful_redis_emulation` | high |
| 305 | `305.apikeys.get.api.keys.merchant.id.key.id` | GET | `/api_keys/{merchant_id}/{key_id}` | APIKeys | `api_keys::api_key_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2279` | `APIKEY_READ_CACHE` | GET/HGET api_key cache ⇒ SELECT/list fallback | `needs_stateful_redis_emulation` | high |
| 306 | `306.apikeys.post.api.keys.merchant.id.key.id` | POST | `/api_keys/{merchant_id}/{key_id}` | APIKeys | `api_keys::api_key_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2280` | `APIKEY_MUTATE_CACHE` | SETEX/HSET api_key cache; invalidation ⇒ INSERT/UPDATE/DELETE api_keys | `needs_stateful_redis_emulation` | high |
| 307 | `307.apikeys.delete.api.keys.merchant.id.key.id` | DELETE | `/api_keys/{merchant_id}/{key_id}` | APIKeys | `api_keys::api_key_revoke` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2281` | `APIKEY_MUTATE_CACHE` | SETEX/HSET api_key cache; invalidation ⇒ INSERT/UPDATE/DELETE api_keys | `needs_stateful_redis_emulation` | high |
| 308 | `308.disputes.get.disputes.list` | GET | `/disputes/list` | Disputes | `disputes::retrieve_disputes_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2293` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 309 | `309.disputes.get.disputes.profile.list` | GET | `/disputes/profile/list` | Disputes | `disputes::retrieve_disputes_list_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2296` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 310 | `310.disputes.get.disputes.filter` | GET | `/disputes/filter` | Disputes | `disputes::get_disputes_filters` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2298` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 311 | `311.disputes.get.disputes.profile.filter` | GET | `/disputes/profile/filter` | Disputes | `disputes::get_disputes_filters_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2301` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 312 | `312.disputes.post.disputes.accept.dispute.id` | POST | `/disputes/accept/{dispute_id}` | Disputes | `disputes::accept_dispute` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2305` | `DISPUTE_MUTATE` | cache/HGET optional ⇒ SELECT dispute → UPDATE/INSERT evidence/status | `needs_causal_scope_plus_ordinal` | high |
| 313 | `313.disputes.get.disputes.aggregate` | GET | `/disputes/aggregate` | Disputes | `disputes::get_disputes_aggregate` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2308` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 314 | `314.disputes.get.disputes.profile.aggregate` | GET | `/disputes/profile/aggregate` | Disputes | `disputes::get_disputes_aggregate_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2312` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 315 | `315.disputes.post.disputes.evidence` | POST | `/disputes/evidence` | Disputes | `disputes::submit_dispute_evidence` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2316` | `DISPUTE_MUTATE` | cache/HGET optional ⇒ SELECT dispute → UPDATE/INSERT evidence/status | `needs_causal_scope_plus_ordinal` | high |
| 316 | `316.disputes.put.disputes.evidence` | PUT | `/disputes/evidence` | Disputes | `disputes::attach_dispute_evidence` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2317` | `DISPUTE_MUTATE` | cache/HGET optional ⇒ SELECT dispute → UPDATE/INSERT evidence/status | `needs_causal_scope_plus_ordinal` | high |
| 317 | `317.disputes.delete.disputes.evidence` | DELETE | `/disputes/evidence` | Disputes | `disputes::delete_dispute_evidence` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2318` | `DISPUTE_MUTATE` | cache/HGET optional ⇒ SELECT dispute → UPDATE/INSERT evidence/status | `needs_causal_scope_plus_ordinal` | high |
| 318 | `318.disputes.get.disputes.evidence.dispute.id` | GET | `/disputes/evidence/{dispute_id}` | Disputes | `disputes::retrieve_dispute_evidence` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2322` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 319 | `319.disputes.get.disputes.dispute.id` | GET | `/disputes/{dispute_id}` | Disputes | `disputes::retrieve_dispute` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2325` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 320 | `320.disputes.get.disputes.connector.id.fetch` | GET | `/disputes/{connector_id}/fetch` | Disputes | `disputes::fetch_disputes` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2329` | `DISPUTE_READ_LIST` | optional cache/SCAN ⇒ SELECT dispute/list/filter/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 321 | `321.cards.post.cards.create` | POST | `/cards/create` | Cards | `create_cards_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2341` | `CARD_MUTATE` | cache SET/DEL optional ⇒ INSERT/UPDATE card info | `needs_resource_version_or_state` | high |
| 322 | `322.cards.post.cards.update` | POST | `/cards/update` | Cards | `update_cards_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2342` | `CARD_MUTATE` | cache SET/DEL optional ⇒ INSERT/UPDATE card info | `needs_resource_version_or_state` | high |
| 323 | `323.cards.post.cards.update.batch` | POST | `/cards/update-batch` | Cards | `migrate_cards_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2343` | `CARD_MUTATE` | cache SET/DEL optional ⇒ INSERT/UPDATE card info | `needs_resource_version_or_state` | high |
| 324 | `324.cards.get.cards.bin` | GET | `/cards/{bin}` | Cards | `card_iin_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2344` | `CARD_BIN_READ` | cache GET optional ⇒ SELECT/card info lookup | `per_signature_fifo_maybe_ok` | high |
| 325 | `325.files.post.files` | POST | `/files` | Files | `files::files_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2355` | `FILE_DB_STORAGE` | cache optional ⇒ INSERT/SELECT/DELETE file metadata + object storage side effects | `needs_causal_scope_plus_ordinal` | high |
| 326 | `326.files.delete.files.file.id` | DELETE | `/files/{file_id}` | Files | `files::files_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2358` | `FILE_DB_STORAGE` | cache optional ⇒ INSERT/SELECT/DELETE file metadata + object storage side effects | `needs_causal_scope_plus_ordinal` | high |
| 327 | `327.files.get.files.file.id` | GET | `/files/{file_id}` | Files | `files::files_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2359` | `FILE_DB_STORAGE` | cache optional ⇒ INSERT/SELECT/DELETE file metadata + object storage side effects | `needs_causal_scope_plus_ordinal` | high |
| 328 | `328.profile.post.v2.profiles` | POST | `/v2/profiles` | Profile | `profiles::profile_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2420` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 329 | `329.profile.get.v2.profiles.profile.id` | GET | `/v2/profiles/{profile_id}` | Profile | `profiles::profile_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2425` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 330 | `330.profile.put.v2.profiles.profile.id` | PUT | `/v2/profiles/{profile_id}` | Profile | `profiles::profile_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2426` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 331 | `331.profile.get.v2.profiles.profile.id.connector.accounts` | GET | `/v2/profiles/{profile_id}/connector-accounts` | Profile | `admin::connector_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2430` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 332 | `332.profile.get.v2.profiles.profile.id.fallback.routing` | GET | `/v2/profiles/{profile_id}/fallback-routing` | Profile | `routing::routing_retrieve_default_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2434` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 333 | `333.profile.patch.v2.profiles.profile.id.fallback.routing` | PATCH | `/v2/profiles/{profile_id}/fallback-routing` | Profile | `routing::routing_update_default_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2435` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 334 | `334.profile.patch.v2.profiles.profile.id.activate.routing.algorithm` | PATCH | `/v2/profiles/{profile_id}/activate-routing-algorithm` | Profile | `routing::routing_link_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2438` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | medium |
| 335 | `335.profile.patch.v2.profiles.profile.id.deactivate.routing.algorithm` | PATCH | `/v2/profiles/{profile_id}/deactivate-routing-algorithm` | Profile | `routing::routing_unlink_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2451` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | medium |
| 336 | `336.profile.get.v2.profiles.profile.id.routing.algorithm` | GET | `/v2/profiles/{profile_id}/routing-algorithm` | Profile | `routing::routing_retrieve_linked_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2462` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | medium |
| 337 | `337.profile.put.v2.profiles.profile.id.decision` | PUT | `/v2/profiles/{profile_id}/decision` | Profile | `routing::upsert_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2475` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 338 | `338.profile.get.v2.profiles.profile.id.decision` | GET | `/v2/profiles/{profile_id}/decision` | Profile | `routing::retrieve_decision_manager_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2476` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 339 | `339.profile.post.account.account.id.business.profile` | POST | `/account/{account_id}/business_profile` | Profile | `profiles::profile_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2488` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 340 | `340.profile.get.account.account.id.business.profile` | GET | `/account/{account_id}/business_profile` | Profile | `profiles::profiles_list` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2489` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 341 | `341.profile.get.account.account.id.business.profile.profile.id` | GET | `/account/{account_id}/business_profile/{profile_id}` | Profile | `profiles::profile_retrieve` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2552` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 342 | `342.profile.post.account.account.id.business.profile.profile.id` | POST | `/account/{account_id}/business_profile/{profile_id}` | Profile | `profiles::profile_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2553` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 343 | `343.profile.delete.account.account.id.business.profile.profile.id` | DELETE | `/account/{account_id}/business_profile/{profile_id}` | Profile | `profiles::profile_delete` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2554` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 344 | `344.profile.post.account.account.id.business.profile.profile.id.toggle.extended.card` | POST | `/account/{account_id}/business_profile/{profile_id}/toggle_extended_card_info` | Profile | `profiles::toggle_extended_card_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2558` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 345 | `345.profile.post.account.account.id.business.profile.profile.id.toggle.connector.agn` | POST | `/account/{account_id}/business_profile/{profile_id}/toggle_connector_agnostic_mit` | Profile | `profiles::toggle_connector_agnostic_mit` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2562` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 346 | `346.routing.post.account.account.id.business.profile.profile.id.dynamic.routing.succ` | POST | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/success_based/create` | Routing | `routing::create_success_based_routing` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2500` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 347 | `347.routing.patch.account.account.id.business.profile.profile.id.dynamic.routing.suc` | PATCH | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/success_based/config/{algorithm_id}` | Routing | `routing::success_based_routing_update_configs` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2502` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | medium |
| 348 | `348.routing.post.account.account.id.business.profile.profile.id.dynamic.routing.set.` | POST | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/set_volume_split` | Routing | `routing::set_dynamic_routing_volume_split` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2512` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 349 | `349.routing.get.account.account.id.business.profile.profile.id.dynamic.routing.get.v` | GET | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/get_volume_split` | Routing | `routing::get_dynamic_routing_volume_split` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2516` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 350 | `350.routing.post.account.account.id.business.profile.profile.id.dynamic.routing.elim` | POST | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/elimination/create` | Routing | `routing::create_elimination_routing` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2522` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 351 | `351.routing.patch.account.account.id.business.profile.profile.id.dynamic.routing.eli` | PATCH | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/elimination/config/{algorithm_id}` | Routing | `routing::elimination_routing_update_configs` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2524` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | medium |
| 352 | `352.routing.post.account.account.id.business.profile.profile.id.dynamic.routing.cont` | POST | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/contracts/toggle` | Routing | `routing::contract_based_routing_setup_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2534` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | medium |
| 353 | `353.routing.patch.account.account.id.business.profile.profile.id.dynamic.routing.con` | PATCH | `/account/{account_id}/business_profile/{profile_id}/dynamic_routing/contracts/config/{algorithm_id}` | Routing | `routing::contract_based_routing_update_configs` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2537` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | medium |
| 354 | `354.profile.get.account.account.id.profile` | GET | `/account/{account_id}/profile` | Profile | `profiles::profiles_list_at_profile_level` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2579` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 355 | `355.profile.get.account.account.id.profile.connectors` | GET | `/account/{account_id}/profile/connectors` | Profile | `admin::connector_list_profile` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2582` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 356 | `356.gsm.post.gsm` | POST | `/gsm` | GSM | `gsm::create_gsm_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2598` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 357 | `357.gsm.post.gsm.get` | POST | `/gsm/get` | GSM | `gsm::get_gsm_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2599` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 358 | `358.gsm.post.gsm.update` | POST | `/gsm/update` | GSM | `gsm::update_gsm_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2600` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 359 | `359.gsm.post.gsm.delete` | POST | `/gsm/delete` | GSM | `gsm::delete_gsm_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2601` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 360 | `360.gsm.post.v2.gsm` | POST | `/v2/gsm` | GSM | `gsm::create_gsm_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2610` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 361 | `361.gsm.post.v2.gsm.get` | POST | `/v2/gsm/get` | GSM | `gsm::get_gsm_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2611` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 362 | `362.gsm.post.v2.gsm.update` | POST | `/v2/gsm/update` | GSM | `gsm::update_gsm_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2612` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 363 | `363.gsm.post.v2.gsm.delete` | POST | `/v2/gsm/delete` | GSM | `gsm::delete_gsm_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2613` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 364 | `364.chat.post.chat.ai.data` | POST | `/chat/ai/data` | Chat | `chat::get_data_from_hyperswitch_ai_workflow` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2627` | `CHAT_OLAP` | cache optional ⇒ SELECT/list conversations; external AI workflow | `unsafe_without_driver_context` | high |
| 365 | `365.chat.get.chat.ai.list` | GET | `/chat/ai/list` | Chat | `chat::get_all_conversations` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2630` | `CHAT_OLAP` | cache optional ⇒ SELECT/list conversations; external AI workflow | `unsafe_without_driver_context` | high |
| 366 | `366.3ds.post.three.ds.decision.execute` | POST | `/three_ds_decision/execute` | 3DS | `three_ds_decision_rule::execute_decision_rule` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2646` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 367 | `367.verify.post.verify.apple.pay.merchant.id` | POST | `/verify/apple_pay/{merchant_id}` | Verify | `apple_pay_merchant_registration` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2660` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 368 | `368.verify.get.verify.applepay.verified.domains` | GET | `/verify/applepay_verified_domains` | Verify | `retrieve_apple_pay_verified_domains` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2664` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 369 | `369.verify.post.v2.verify.apple.pay.merchant.id` | POST | `/v2/verify/apple-pay/{merchant_id}` | Verify | `apple_pay_merchant_registration` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2676` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 370 | `370.verify.get.v2.verify.applepay.verified.domains` | GET | `/v2/verify/applepay-verified-domains` | Verify | `retrieve_apple_pay_verified_domains` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2680` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 371 | `371.user.post.v2.user.create.merchant` | POST | `/v2/user/create_merchant` | User | `user::user_merchant_account_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2695` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 372 | `372.user.get.v2.user.list.merchant` | GET | `/v2/user/list/merchant` | User | `user::list_merchants_for_user_in_org` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2701` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 373 | `373.user.get.v2.user.list.profile` | GET | `/v2/user/list/profile` | User | `user::list_profiles_for_user_in_org_and_merchant` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2705` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 374 | `374.user.post.v2.user.switch.merchant` | POST | `/v2/user/switch/merchant` | User | `user::switch_merchant_for_user_in_org` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2713` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 375 | `375.user.post.v2.user.switch.profile` | POST | `/v2/user/switch/profile` | User | `user::switch_profile_for_user_in_org_and_merchant` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2717` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 376 | `376.user.get.v2.user.data` | GET | `/v2/user/data` | User | `user::get_multiple_dashboard_metadata` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2723` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 377 | `377.user.post.v2.user.data` | POST | `/v2/user/data` | User | `user::set_dashboard_metadata` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2724` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 378 | `378.user.post.v2.users.create.merchant` | POST | `/v2/users/create-merchant` | User | `user::user_merchant_account_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2740` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 379 | `379.user.get.v2.users.list.merchant` | GET | `/v2/users/list/merchant` | User | `user::list_merchants_for_user_in_org` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2746` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 380 | `380.user.get.v2.users.list.profile` | GET | `/v2/users/list/profile` | User | `user::list_profiles_for_user_in_org_and_merchant` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2750` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 381 | `381.user.post.v2.users.switch.merchant` | POST | `/v2/users/switch/merchant` | User | `user::switch_merchant_for_user_in_org` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2758` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 382 | `382.user.post.v2.users.switch.profile` | POST | `/v2/users/switch/profile` | User | `user::switch_profile_for_user_in_org_and_merchant` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2762` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 383 | `383.user.get.v2.users.data` | GET | `/v2/users/data` | User | `user::get_multiple_dashboard_metadata` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2768` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 384 | `384.user.post.v2.users.data` | POST | `/v2/users/data` | User | `user::set_dashboard_metadata` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2769` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 385 | `385.user.get.user` | GET | `/user` | User | `user::get_active_user_details` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2782` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 386 | `386.user.post.user.signin` | POST | `/user/signin` | User | `user::user_signin` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2783` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 387 | `387.user.post.user.v2.signin` | POST | `/user/v2/signin` | User | `user::user_signin` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2784` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 388 | `388.user.post.user.oidc` | POST | `/user/oidc` | User | `user::sso_sign` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2786` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 389 | `389.user.post.user.signout` | POST | `/user/signout` | User | `user::signout` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2787` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 390 | `390.user.post.user.rotate.password` | POST | `/user/rotate_password` | User | `user::rotate_password` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2788` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 391 | `391.user.post.user.change.password` | POST | `/user/change_password` | User | `user::change_password` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2789` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 392 | `392.user.post.user.internal.signup` | POST | `/user/internal_signup` | User | `user::internal_user_signup` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2791` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 393 | `393.user.post.user.tenant.signup` | POST | `/user/tenant_signup` | User | `user::create_tenant_user` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2794` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 394 | `394.user.post.user.create.org` | POST | `/user/create_org` | User | `user::user_org_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2796` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 395 | `395.user.post.user.create.merchant` | POST | `/user/create_merchant` | User | `user::user_merchant_account_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2799` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 396 | `396.user.get.user.permission.info` | GET | `/user/permission_info` | User | `user_role::get_authorization_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2804` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 397 | `397.user.get.user.module.list` | GET | `/user/module/list` | User | `user_role::get_role_information` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2808` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 398 | `398.user.get.user.parent.list` | GET | `/user/parent/list` | User | `user_role::get_parent_group_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2812` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 399 | `399.user.post.user.update` | POST | `/user/update` | User | `user::update_user_account_details` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2815` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 400 | `400.user.get.user.data` | GET | `/user/data` | User | `user::get_multiple_dashboard_metadata` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2819` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 401 | `401.user.post.user.data` | POST | `/user/data` | User | `user::set_dashboard_metadata` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2820` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 402 | `402.user.post.user.create.platform` | POST | `/user/create_platform` | User | `user::create_platform` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2825` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 403 | `403.user.post.user.key.transfer` | POST | `/user/key/transfer` | User | `user::transfer_user_key` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2831` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 404 | `404.user.get.user.list.org` | GET | `/user/list/org` | User | `user::list_orgs_for_user` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2836` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 405 | `405.user.get.user.list.merchant` | GET | `/user/list/merchant` | User | `user::list_merchants_for_user_in_org` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2839` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 406 | `406.user.get.user.list.profile` | GET | `/user/list/profile` | User | `user::list_profiles_for_user_in_org_and_merchant` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2843` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 407 | `407.user.get.user.list.invitation` | GET | `/user/list/invitation` | User | `user_role::list_invitations_for_user` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2847` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 408 | `408.user.post.user.switch.org` | POST | `/user/switch/org` | User | `user::switch_org_for_user` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2853` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 409 | `409.user.post.user.switch.merchant` | POST | `/user/switch/merchant` | User | `user::switch_merchant_for_user_in_org` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2856` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 410 | `410.user.post.user.switch.profile` | POST | `/user/switch/profile` | User | `user::switch_profile_for_user_in_org_and_merchant` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2860` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 411 | `411.user.get.user.2fa` | GET | `/user/2fa` | User | `user::check_two_factor_auth_status` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2868` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | medium (deprecated) |
| 412 | `412.user.get.user.2fa.v2` | GET | `/user/2fa/v2` | User | `user::check_two_factor_auth_status_with_attempts` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2871` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 413 | `413.user.get.user.2fa.totp.begin` | GET | `/user/2fa/totp/begin` | User | `user::totp_begin` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2875` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 414 | `414.user.get.user.2fa.totp.reset` | GET | `/user/2fa/totp/reset` | User | `user::totp_reset` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2876` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 415 | `415.user.post.user.2fa.totp.verify` | POST | `/user/2fa/totp/verify` | User | `user::totp_verify` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2879` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 416 | `416.user.put.user.2fa.totp.verify` | PUT | `/user/2fa/totp/verify` | User | `user::totp_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2880` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 417 | `417.user.post.user.2fa.recovery.code.verify` | POST | `/user/2fa/recovery_code/verify` | User | `user::verify_recovery_code` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2887` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 418 | `418.user.get.user.2fa.recovery.code.generate` | GET | `/user/2fa/recovery_code/generate` | User | `user::generate_recovery_codes` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2891` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 419 | `419.user.get.user.2fa.terminate` | GET | `/user/2fa/terminate` | User | `user::terminate_two_factor_auth` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2896` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 420 | `420.user.post.user.auth` | POST | `/user/auth` | User | `user::create_user_authentication_method` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2904` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 421 | `421.user.put.user.auth` | PUT | `/user/auth` | User | `user::update_user_authentication_method` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2905` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 422 | `422.user.get.user.auth.list` | GET | `/user/auth/list` | User | `user::list_user_authentication_methods` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2909` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 423 | `423.user.get.user.auth.url` | GET | `/user/auth/url` | User | `user::get_sso_auth_url` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2911` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 424 | `424.user.post.user.auth.select` | POST | `/user/auth/select` | User | `user::terminate_auth_select` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2913` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 425 | `425.user.post.user.from.email` | POST | `/user/from_email` | User | `user::user_from_email` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2920` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 426 | `426.user.post.user.connect.account` | POST | `/user/connect_account` | User | `user::user_connect_account` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2923` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 427 | `427.user.post.user.forgot.password` | POST | `/user/forgot_password` | User | `user::forgot_password` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2926` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high (conditional) |
| 428 | `428.user.post.user.reset.password` | POST | `/user/reset_password` | User | `user::reset_password` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2929` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high (conditional) |
| 429 | `429.user.post.user.signup.with.merchant.id` | POST | `/user/signup_with_merchant_id` | User | `user::user_signup_with_merchant_id` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2933` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 430 | `430.user.post.user.verify.email` | POST | `/user/verify_email` | User | `user::verify_email` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2935` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 431 | `431.user.post.user.v2.verify.email` | POST | `/user/v2/verify_email` | User | `user::verify_email` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2937` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 432 | `432.user.post.user.verify.email.request` | POST | `/user/verify_email_request` | User | `user::verify_email_request` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2941` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 433 | `433.user.post.user.user.resend.invite` | POST | `/user/user/resend_invite` | User | `user::resend_invite` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2944` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 434 | `434.user.post.user.terminate.accept.invite` | POST | `/user/terminate_accept_invite` | User | `user::terminate_accept_invite` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2948` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 435 | `435.user.post.user.accept.invite.from.email` | POST | `/user/accept_invite_from_email` | User | `user::accept_invite_from_email` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2952` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 436 | `436.user.post.user.signup` | POST | `/user/signup` | User | `user::user_signup` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2957` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 437 | `437.user.post.user.user` | POST | `/user/user` | User | `user::list_user_roles_details` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2963` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | medium (deprecated path) |
| 438 | `438.user.post.user.user.v2` | POST | `/user/user/v2` | User | `user::list_user_roles_details` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2965` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 439 | `439.user.get.user.user.list` | GET | `/user/user/list` | User | `user_role::list_users_in_lineage` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2967` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 440 | `440.user.get.user.user.v2.list` | GET | `/user/user/v2/list` | User | `user_role::list_users_in_lineage` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2972` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 441 | `441.user.post.user.user.invite.multiple` | POST | `/user/user/invite_multiple` | User | `user::invite_multiple_user` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2976` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 442 | `442.user.post.user.user.invite.accept` | POST | `/user/user/invite/accept` | User | `user_role::accept_invitations_v2` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2982` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 443 | `443.user.post.user.user.invite.accept.pre.auth` | POST | `/user/user/invite/accept/pre_auth` | User | `user_role::accept_invitations_pre_auth` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2986` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 444 | `444.user.post.user.user.invite.accept.v2` | POST | `/user/user/invite/accept/v2` | User | `user_role::accept_invitations_v2` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2992` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 445 | `445.user.post.user.user.invite.accept.v2.pre.auth` | POST | `/user/user/invite/accept/v2/pre_auth` | User | `user_role::accept_invitations_pre_auth` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:2995` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | medium (nested closure) |
| 446 | `446.user.post.user.user.update.role` | POST | `/user/user/update_role` | User | `user_role::update_user_role` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3003` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 447 | `447.user.delete.user.user.delete` | DELETE | `/user/user/delete` | User | `user_role::delete_user_role` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3006` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 448 | `448.user.post.user.user.clone.connector` | POST | `/user/user/clone_connector` | User | `user::clone_connector` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3012` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 449 | `449.role.get.user.role` | GET | `/user/role` | Role | `user_role::get_role_from_token` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3022` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 450 | `450.role.post.user.role` | POST | `/user/role` | Role | `user_role::create_role` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3024` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 451 | `451.role.post.user.role.v2` | POST | `/user/role/v2` | Role | `user_role::create_role_v2` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3028` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 452 | `452.role.get.user.role.v2` | GET | `/user/role/v2` | Role | `user_role::get_groups_and_resources_for_role_from_token` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3029` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 453 | `453.role.get.user.role.v3` | GET | `/user/role/v3` | Role | `user_role::get_parent_groups_info_for_role_from_token` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3034` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (closure) |
| 454 | `454.role.get.user.role.v2.list` | GET | `/user/role/v2/list` | Role | `user_role::list_roles_with_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3040` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (deprecated) |
| 455 | `455.role.get.user.role.list` | GET | `/user/role/list` | Role | `user_role::list_roles_with_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3046` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 456 | `456.role.get.user.role.list.invite` | GET | `/user/role/list/invite` | Role | `user_role::list_invitable_roles_at_entity_level` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3048` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (closure) |
| 457 | `457.role.get.user.role.list.update` | GET | `/user/role/list/update` | Role | `user_role::list_updatable_roles_at_entity_level` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3051` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | medium (closure) |
| 458 | `458.role.get.user.role.role.id` | GET | `/user/role/{role_id}` | Role | `user_role::get_role` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3057` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 459 | `459.role.put.user.role.role.id` | PUT | `/user/role/{role_id}` | Role | `user_role::update_role` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3058` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 460 | `460.role.get.user.role.role.id.v2` | GET | `/user/role/{role_id}/v2` | Role | `user_role::get_parent_info_for_role` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3062` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 461 | `461.sampledata.post.user.sample.data` | POST | `/user/sample_data` | SampleData | `user::generate_sample_data` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3070` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 462 | `462.sampledata.delete.user.sample.data` | DELETE | `/user/sample_data` | SampleData | `user::delete_sample_data` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3071` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high (conditional) |
| 463 | `463.theme.get.user.admin.theme` | GET | `/user/admin/theme` | Theme | `user::theme::get_theme_using_lineage` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3080` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 464 | `464.theme.post.user.admin.theme` | POST | `/user/admin/theme` | Theme | `user::theme::create_theme` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3081` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 465 | `465.theme.get.user.admin.theme.theme.id` | GET | `/user/admin/theme/{theme_id}` | Theme | `user::theme::get_theme_using_theme_id` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3085` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 466 | `466.theme.put.user.admin.theme.theme.id` | PUT | `/user/admin/theme/{theme_id}` | Theme | `user::theme::update_theme` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3086` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 467 | `467.theme.post.user.admin.theme.theme.id` | POST | `/user/admin/theme/{theme_id}` | Theme | `user::theme::upload_file_to_theme_storage` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3087` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 468 | `468.theme.delete.user.admin.theme.theme.id` | DELETE | `/user/admin/theme/{theme_id}` | Theme | `user::theme::delete_theme` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3088` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 469 | `469.theme.post.user.theme` | POST | `/user/theme` | Theme | `user::theme::create_user_theme` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3096` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 470 | `470.theme.get.user.theme` | GET | `/user/theme` | Theme | `user::theme::get_user_theme_using_lineage` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3097` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 471 | `471.theme.get.user.theme.list` | GET | `/user/theme/list` | Theme | `user::theme::list_all_themes_in_lineage` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3101` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 472 | `472.theme.get.user.theme.theme.id` | GET | `/user/theme/{theme_id}` | Theme | `user::theme::get_user_theme_using_theme_id` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3107` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 473 | `473.theme.put.user.theme.theme.id` | PUT | `/user/theme/{theme_id}` | Theme | `user::theme::update_user_theme` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3108` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | high |
| 474 | `474.theme.post.user.theme.theme.id` | POST | `/user/theme/{theme_id}` | Theme | `user::theme::upload_file_to_user_theme_storage` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3112` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | medium (continuation) |
| 475 | `475.theme.delete.user.theme.theme.id` | DELETE | `/user/theme/{theme_id}` | Theme | `user::theme::delete_user_theme` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3112` | `ACCOUNTS_MUTATE` | cache invalidation/session writes optional ⇒ INSERT/UPDATE/DELETE user/org/role/theme | `needs_db_snapshot_or_transaction_order` | medium (continuation) |
| 476 | `476.theme.get.user.theme.theme.id.version` | GET | `/user/theme/{theme_id}/version` | Theme | `user::theme::get_theme_version` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3116` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 477 | `477.internal.post.user.internal.user.list` | POST | `/user/internal/user/list` | Internal | `user::list_users_internal` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3125` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 478 | `478.internal.get.user.internal.user.user.id` | GET | `/user/internal/user/{user_id}` | Internal | `user::get_user_details_internal` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3129` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 479 | `479.internal.get.user.internal.members` | GET | `/user/internal/members` | Internal | `user::list_members_for_entity` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3132` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 480 | `480.internal.post.user.internal.authorize` | POST | `/user/internal/authorize` | Internal | `user::authorize_token` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3134` | `ACCOUNTS_AUTH_SESSION` | session/cache SETEX/DEL optional; 2FA state reads ⇒ SELECT user/org/role; UPDATE login/auth metadata | `needs_causal_scope_plus_ordinal` | high |
| 481 | `481.connectoronboarding.post.connector.onboarding.action.url` | POST | `/connector_onboarding/action_url` | ConnectorOnboarding | `connector_onboarding::get_action_url` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3150` | `ADMIN_CONFIG_READ` | cache GET/HGET optional ⇒ SELECT/list config/account/profile/connector rows | `needs_resource_version_or_state` | high |
| 482 | `482.connectoronboarding.post.connector.onboarding.sync` | POST | `/connector_onboarding/sync` | ConnectorOnboarding | `connector_onboarding::sync_onboarding_status` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3154` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 483 | `483.connectoronboarding.post.connector.onboarding.reset.tracking.id` | POST | `/connector_onboarding/reset_tracking_id` | ConnectorOnboarding | `connector_onboarding::reset_tracking_id` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3158` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 484 | `484.embedded.get.embedded` | GET | `/embedded` | Embedded | `user::embedded_token_info` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3170` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 485 | `485.embedded.get.embedded.token` | GET | `/embedded/token` | Embedded | `user::issue_embedded_token` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3171` | `ACCOUNTS_READ` | cache read optional ⇒ SELECT user/org/role/theme/list | `needs_db_snapshot_or_transaction_order` | high |
| 486 | `486.webhooks.post.events.profile.list` | POST | `/events/profile/list` | Webhooks | `webhook_events::list_initial_webhook_delivery_attempts_with_jwtauth` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3183` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 487 | `487.webhooks.post.events.merchant.id` | POST | `/events/{merchant_id}` | Webhooks | `webhook_events::list_initial_webhook_delivery_attempts` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3188` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 488 | `488.webhooks.get.events.merchant.id.event.id.attempts` | GET | `/events/{merchant_id}/{event_id}/attempts` | Webhooks | `webhook_events::list_webhook_delivery_attempts` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3193` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 489 | `489.webhooks.post.events.merchant.id.event.id.retry` | POST | `/events/{merchant_id}/{event_id}/retry` | Webhooks | `webhook_events::retry_webhook_delivery_attempt` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3196` | `WEBHOOK_STATE_SYNC` | HGET merchant/connector config → GET reverse_lookup → HGET/HSET target entity ⇒ SELECT fallback → UPDATE payment/refund/dispute | `needs_stateful_redis_emulation` | high |
| 490 | `490.featurematrix.get.feature.matrix` | GET | `/feature_matrix` | FeatureMatrix | `feature_matrix::fetch_feature_matrix` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3212` | `OLAP_ANALYTICS_READ` | none or cache ⇒ ClickHouse/OpenSearch/analytics SELECT/aggregate | `needs_db_snapshot_or_transaction_order` | high |
| 491 | `491.processtracker.get.v2.process.tracker.revenue.recovery.workflow.revenue.recovery` | GET | `/v2/process_tracker/revenue_recovery_workflow/{revenue_recovery_id}` | ProcessTracker | `revenue_recovery::revenue_recovery_pt_retrieve_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3228` | `RECOVERY_PROCESS_TRACKER` | GET/HGET recovery redis data; process status cache ⇒ SELECT/UPDATE process tracker/recovery rows | `needs_resource_version_or_state` | medium (deprecated) |
| 492 | `492.processtracker.get.v2.process.trackers.revenue.recovery.workflow.revenue.recover` | GET | `/v2/process-trackers/revenue-recovery-workflow/{revenue_recovery_id}` | ProcessTracker | `revenue_recovery::revenue_recovery_pt_retrieve_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3245` | `RECOVERY_PROCESS_TRACKER` | GET/HGET recovery redis data; process status cache ⇒ SELECT/UPDATE process tracker/recovery rows | `needs_resource_version_or_state` | high |
| 493 | `493.processtracker.post.v2.process.trackers.revenue.recovery.workflow.revenue.recove` | POST | `/v2/process-trackers/revenue-recovery-workflow/{revenue_recovery_id}/resume` | ProcessTracker | `revenue_recovery::revenue_recovery_resume_api` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3251` | `RECOVERY_PROCESS_TRACKER` | GET/HGET recovery redis data; process status cache ⇒ SELECT/UPDATE process tracker/recovery rows | `needs_resource_version_or_state` | high |
| 494 | `494.authentication.post.authentication` | POST | `/authentication` | Authentication | `authentication::authentication_create` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3264` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 495 | `495.authentication.post.authentication.authentication.id.eligibility` | POST | `/authentication/{authentication_id}/eligibility` | Authentication | `authentication::authentication_eligibility` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3267` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 496 | `496.authentication.post.authentication.authentication.id.authenticate` | POST | `/authentication/{authentication_id}/authenticate` | Authentication | `authentication::authentication_authenticate` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3271` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 497 | `497.authentication.post.authentication.authentication.id.eligibility.check` | POST | `/authentication/{authentication_id}/eligibility-check` | Authentication | `authentication::authentication_eligibility_check` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3275` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 498 | `498.authentication.get.authentication.authentication.id.eligibility.check` | GET | `/authentication/{authentication_id}/eligibility-check` | Authentication | `authentication::authentication_retrieve_eligibility_check` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3276` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | medium (continuation) |
| 499 | `499.authentication.post.authentication.merchant.id.authentication.id.redirect` | POST | `/authentication/{merchant_id}/{authentication_id}/redirect` | Authentication | `authentication::authentication_sync_post_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3282` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 500 | `500.authentication.get.authentication.merchant.id.authentication.id.redirect` | GET | `/authentication/{merchant_id}/{authentication_id}/redirect` | Authentication | `authentication::authentication_sync_post_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3283` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 501 | `501.authentication.post.authentication.merchant.id.authentication.id.sync` | POST | `/authentication/{merchant_id}/{authentication_id}/sync` | Authentication | `authentication::authentication_sync` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3287` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 502 | `502.authentication.post.authentication.authentication.id.enabled.authn.methods.token` | POST | `/authentication/{authentication_id}/enabled_authn_methods_token` | Authentication | `authentication::authentication_session_token` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3291` | `AUTHENTICATION_STATEFUL` | HGET/HSET authentication/session/token data ⇒ INSERT/UPDATE authentication rows | `needs_causal_scope_plus_ordinal` | high |
| 503 | `503.profileacquirer.post.profile.acquirer` | POST | `/profile_acquirer` | ProfileAcquirer | `profile_acquirer::create_profile_acquirer` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3305` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 504 | `504.profileacquirer.post.profile.acquirer.profile.id.profile.acquirer.id` | POST | `/profile_acquirer/{profile_id}/{profile_acquirer_id}` | ProfileAcquirer | `profile_acquirer::profile_acquirer_update` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3309` | `ADMIN_CONFIG_MUTATE` | cache GET/DEL/SET optional; publish invalidation ⇒ INSERT/UPDATE/DELETE config/account/profile/connector rows | `needs_db_snapshot_or_transaction_order` | high |
| 505 | `505.revenuerecovery.post.v2.recovery.data.backfill` | POST | `/v2/recovery/data-backfill` | RevenueRecovery | `revenue_recovery_data_backfill` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3322` | `RECOVERY_PROCESS_TRACKER` | GET/HGET recovery redis data; process status cache ⇒ SELECT/UPDATE process tracker/recovery rows | `needs_resource_version_or_state` | high |
| 506 | `506.revenuerecovery.post.v2.recovery.data.backfill.status.connector.cutomer.id.payme` | POST | `/v2/recovery/data-backfill/status/{connector_cutomer_id}/{payment_intent_id}` | RevenueRecovery | `revenue_recovery_data_backfill_status` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3327` | `RECOVERY_PROCESS_TRACKER` | GET/HGET recovery redis data; process status cache ⇒ SELECT/UPDATE process tracker/recovery rows | `needs_resource_version_or_state` | high |
| 507 | `507.revenuerecovery.get.v2.recovery.data.backfill.redis.data.connector.cutomer.id` | GET | `/v2/recovery/data-backfill/redis-data/{connector_cutomer_id}` | RevenueRecovery | `get_revenue_recovery_redis_data` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3332` | `RECOVERY_PROCESS_TRACKER` | GET/HGET recovery redis data; process status cache ⇒ SELECT/UPDATE process tracker/recovery rows | `needs_resource_version_or_state` | high |
| 508 | `508.revenuerecovery.put.v2.recovery.data.backfill.update.token` | PUT | `/v2/recovery/data-backfill/update-token` | RevenueRecovery | `update_revenue_recovery_additional_redis_data` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3337` | `RECOVERY_PROCESS_TRACKER` | GET/HGET recovery redis data; process status cache ⇒ SELECT/UPDATE process tracker/recovery rows | `needs_resource_version_or_state` | high |
| 509 | `509.sdkconfig.get.v1.sdk.configs.profile.id.platform.sdk.config.json` | GET | `/v1/sdk/configs/{profile_id}/{platform}/{sdk_config}.json` | SDKConfig | `superposition_sdk_config::get_sdk_config` | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs:3353` | `GENERIC_DB_OR_CONFIG` | cache optional ⇒ SELECT/INSERT/UPDATE/DELETE depending method | `needs_resource_version_or_state` | high |

---

## Source Evidence Index

| Evidence family | Local source links |
|---|---|
| Route registrations | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/app.rs`, `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/routes/*.rs` |
| PaymentIntent KV read/write | `<repo-root>/vendor/hyperswitch-fresh/crates/storage_impl/src/payments/payment_intent.rs:448`, `:510`, `:694` |
| PaymentAttempt KV read/write/scan | `<repo-root>/vendor/hyperswitch-fresh/crates/storage_impl/src/payments/payment_attempt.rs:1262`, `:1319`, `:1583`, `:1741`, `:1936` |
| Refund KV read/write/scan | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/db/refund.rs:581`, `:810`, `:1001`, `:1083`, `:1131` |
| Mandate KV reads | `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/db/mandate.rs:119`, `:177` |
| Reverse lookup | `<repo-root>/vendor/hyperswitch-fresh/crates/storage_impl/src/lookup.rs:104`, `:147`; `<repo-root>/vendor/hyperswitch-fresh/crates/router/src/db/reverse_lookup.rs:128`, `:175` |
| Redis primitives | `<repo-root>/vendor/hyperswitch-fresh/crates/redis_interface/src/commands.rs:328`, `:724`, `:753` |
| Cache populate | `<repo-root>/vendor/hyperswitch-fresh/crates/storage_impl/src/redis/cache.rs:306-340` |

---

## How to use this full version

1. Use the **per-route matrix** to confirm that every HTTP route has a cascade class.

2. Jump to the route's **cascade template** for ordered Redis/DB behavior.

3. For routes marked `needs_*`, consult `04_AMBIGUITY_MATRIX.md` for exact replay disambiguator recommendations.

4. For deep call-chain details, use `02_HANDLER_CALL_GRAPHS.md` and the raw agent cascade files.



**Bottom line:** This full document is route-complete; branch-level exact order remains conditional where Hyperswitch selects Redis-vs-DB storage, cache hit-vs-miss, or connector-specific behavior at runtime.
