# Get routing configuration version

Returns the routing configuration version with the full route tree for the provided identifier.

Endpoint: POST /routing-configs/get-version
Version: 2.0.0
Security: bearerAuth

## Security:

  - `bearerAuth` (unknown)
    http bearer SECRET

## Request fields (application/json):

  - `id` (string, required)
    Unique routing configuration version identifier.
    Example: cfgv_01KRXP2KJ3DV2WTMQF4AJ1XCGK

  - `config_id` (string, required)
    Unique routing configuration identifier.
    Example: cfg_01KRXP28JDKPZCBGS77SWRQWMA

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `id` (string, required)
    Unique routing configuration version identifier.
    Example: cfgv_01KRXP2KJ3DV2WTMQF4AJ1XCGK

  - `version` (integer, required)
    Sequential version number within the routing configuration.
    Example: 4

  - `status` (string, required)
    Routing configuration version status.
    Enum: "DRAFT", "PUBLISHED"

  - `description` (string)
    Routing configuration version description.
    Example: Initial published version

  - `is_sca_low_value_exemption_enabled` (boolean, required)
    Whether the SCA Low Value Exemption is enabled for the version.
    Example: false

  - `is_sca_regulation_management_enabled` (boolean, required)
    Whether the SCA Regulation Management is enabled for the version.
    Example: false

  - `route_sets` (array, required)
    Route sets that make up the routing configuration version.

  - `route_sets.id` (string, required)
    Unique route set identifier.
    Example: rts_01KS52NE57E3SBT4MK06SET001

  - `route_sets.title` (string, required)
    Human-readable route set title.
    Example: Block Payments

  - `route_sets.precondition_type` (string, required)
    Payment flow stage at which the route set is evaluated.
    Enum: "BLOCK_PAYMENTS", "FORCE_3DS", "GOOGLE_PAY_PAN_ONLY", "ANY", "REROUTE_FORCE_3DS", "REROUTE_ANY"

  - `route_sets.routes` (array, required)
    Routes evaluated within the route set in priority order.

  - `route_sets.routes.id` (string, required)
    Unique route identifier.
    Example: rt_01KS52NE57E3SBT4MK06ROUTE01

  - `route_sets.routes.analytics_route_id` (string)
    Route identifier used in analytics reports.
    Example: art_01HV9Z2K3M4N5P6Q7R8S9T0U1V

  - `route_sets.routes.title` (string, required)
    Human-readable route title.
    Example: USA GP

  - `route_sets.routes.is_default` (boolean, required)
    Whether the route is the fallback default. Exactly one route per route set must be default. Default routes have no rule.
    Example: false

  - `route_sets.routes.is_smart` (boolean, required)
    Whether the route splits segment traffic automatically. Smart routes redistribute `traffic_percentage` across segments instead of keeping fixed values.
    Example: false

  - `route_sets.routes.segments` (array, required)
    Segments associated with the route. Segment traffic percentages must sum to 100.

  - `route_sets.routes.segments.analytics_segment_id` (string)
    Segment identifier used in analytics reports.
    Example: art_01KT9A226KXK9GAAMJR9JK5Q1W

  - `route_sets.routes.segments.title` (string, required)
    Human-readable segment title.
    Example: Segment A

  - `route_sets.routes.segments.traffic_percentage` (integer, required)
    Share of the route traffic routed to the segment in percent. Segments within a route must sum to 100.
    Example: 100

  - `route_sets.routes.segments.steps` (array, required)
    Cascade steps evaluated within the segment in order of `step_number`.

  - `route_sets.routes.segments.steps.id` (string, required)
    Unique step identifier.
    Example: stp_01KS52NE57E3SBT4MK06STP001

  - `route_sets.routes.segments.steps.analytics_step_id` (string)
    Step identifier used in analytics reports.
    Example: ars_01HV9Z2K3M4N5P6Q7R8S9T0U1V

  - `route_sets.routes.segments.steps.step_number` (integer, required)
    Position of the step in the cascade chain. Step number 1 is tried first.
    Example: 1

  - `route_sets.routes.segments.steps.status` (string, required)
    Step status.
    Enum: "ACTIVE", "DEACTIVATED"

  - `route_sets.routes.segments.steps.processing_method` (string, required)
    Method used to process the payment at this step.
    Enum: "CARD", "NETWORK_TOKEN", "PSP_TOKEN", "COF", "MOTO", "DIGITAL_WALLET"

  - `route_sets.routes.segments.steps.descriptor` (string)
    Statement descriptor shown on the cardholder bank statement.
    Example: ACME*STORE

  - `route_sets.routes.segments.steps.is_force_3ds` (boolean)
    Whether 3-D Secure authentication is forced for this step.
    Example: false

  - `route_sets.routes.segments.steps.is_sca_tra_exemption` (boolean)
    Whether the SCA TRA exemption is enabled for this step.
    Example: false

  - `route_sets.routes.segments.steps.connector_id` (string, required)
    Identifier of the PSP or acquirer connector used for processing.
    Example: adyen

  - `route_sets.routes.segments.steps.connector_account_id` (string, required)
    Identifier of the merchant account at the connector used for processing.
    Example: ca_01HV9Z2K3M4N5P6Q7R8S9T0U1V

  - `route_sets.routes.segments.steps.created_at` (string, required)
    Date and time when the step was created.
    Example: 2026-05-18T13:58:13.317000Z

  - `route_sets.routes.segments.steps.updated_at` (string, required)
    Date and time when the step was updated.
    Example: 2026-05-18T13:58:14.874000Z

  - `route_sets.routes.created_at` (string, required)
    Date and time when the route was created.
    Example: 2026-05-18T13:58:13.317000Z

  - `route_sets.routes.updated_at` (string, required)
    Date and time when the route was updated.
    Example: 2026-05-18T13:58:14.874000Z

  - `route_sets.routes.rule` (object)
    Rule that selects the route when its condition evaluates to true.

  - `route_sets.routes.rule.condition` (object, required)
    Root node of the route rule expression tree. Selects either a leaf comparison or a top-level boolean group based on `type`. Boolean groups can nest up to three levels deep.

  - `route_sets.routes.rule.condition.type` (string, required)
    Condition kind that determines the schema of remaining fields.
    Enum: "SIMPLE", "COMPLEX"

  - `route_sets.routes.rule.condition.type` (string, required)
    Condition kind discriminator. Always `SIMPLE` for a leaf comparison.
    Enum: "SIMPLE"

  - `route_sets.routes.rule.condition.comparison_operator` (string, required)
    Operator applied to the `left` and `right` operands.
    Enum: "EQUAL", "NOT_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN", "LESS_THAN_OR_EQUAL", "ONE_OF", "NOT_ONE_OF"

  - `route_sets.routes.rule.condition.left` (object, required)
    Left operand of a simple condition. Reads a value from a known payment property or from payment metadata.

  - `route_sets.routes.rule.condition.left.source` (string, required)
    Value source that determines the schema of remaining fields.
    Enum: "PROPERTY", "METADATA"

  - `route_sets.routes.rule.condition.left.source` (string, required)
    Value source discriminator. Always `PROPERTY` for a property reference.
    Enum: "PROPERTY"

  - `route_sets.routes.rule.condition.left.property_name` (string, required)
    Name of the payment property to read at evaluation time.
    Enum: "AMOUNT", "AMOUNT_USD", "CURRENCY", "BIN_COUNTRY", "COUNTRY", "IP_ADDRESS", "TRAFFIC_SOURCE", "WEBSITE", "BANK", "BIN", "CARD_BRAND", "CARD_RELOADABLE", "CARD_TYPE", "CUSTOMER_ACCOUNT_ID", "CUSTOMER_EMAIL", "DATA_ORIGIN", "INITIATOR_ORIGIN", "PAYMENT_METHOD_TYPE", "DPAN_SOURCE", "IS_3DS_FORCED_BY_ANTIFRAUD", "IS_3DS_FORCED_BY_CLIENT", "IS_EXTERNAL_MPI", "IS_FRAUD_RISK_DETECTED", "INITIAL_CONNECTOR_ACCOUNT_ID", "INITIAL_CONNECTOR_ID", "INITIAL_DESCRIPTOR_BODY", "IS_INIT_DSRP", "PAYMENT_TYPE"

  - `route_sets.routes.rule.condition.left.source` (string, required)
    Value source discriminator. Always `METADATA` for a metadata lookup.
    Enum: "METADATA"

  - `route_sets.routes.rule.condition.left.full_path` (string, required)
    Path used to read the value from payment metadata.
    Example: customer_segment

  - `route_sets.routes.rule.condition.left.value_type` (string, required)
    Expected type of the resolved metadata value.
    Enum: "STRING", "INT", "DOUBLE", "BOOL"

  - `route_sets.routes.rule.condition.right` (object, required)
    Constant value provided directly in the rule definition. The `value_type` field selects the shape of the `value` payload.

  - `route_sets.routes.rule.condition.right.source` (string, required)
    Value source discriminator. Always `CONSTANT` for an inline value.
    Enum: "CONSTANT"

  - `route_sets.routes.rule.condition.right.value_type` (string, required)
    Type of the constant value that determines the schema of `value`.
    Enum: "STRING", "INT", "DOUBLE", "BOOL", "LIST_OF_STRINGS", "LIST_OF_INTS", "LIST_OF_DOUBLES"

  - `route_sets.routes.rule.condition.right.value_type` (string, required)
    Constant value type. Always `STRING` for a string comparison.
    Enum: "STRING"

  - `route_sets.routes.rule.condition.right.value` (string, required)
    Constant string value.
    Example: AGO

  - `route_sets.routes.rule.condition.right.value_type` (string, required)
    Constant value type. Always `INT` for an integer comparison.
    Enum: "INT"

  - `route_sets.routes.rule.condition.right.value` (integer, required)
    Constant integer value.
    Example: 100

  - `route_sets.routes.rule.condition.right.value_type` (string, required)
    Constant value type. Always `DOUBLE` for a floating-point comparison.
    Enum: "DOUBLE"

  - `route_sets.routes.rule.condition.right.value` (number, required)
    Constant floating-point value.
    Example: 99.99

  - `route_sets.routes.rule.condition.right.value_type` (string, required)
    Constant value type. Always `BOOL` for a boolean comparison.
    Enum: "BOOL"

  - `route_sets.routes.rule.condition.right.value` (boolean, required)
    Constant boolean value.
    Example: true

  - `route_sets.routes.rule.condition.right.value_type` (string, required)
    Constant value type. Always `LIST_OF_STRINGS` for a list of string comparisons.
    Enum: "LIST_OF_STRINGS"

  - `route_sets.routes.rule.condition.right.value` (array, required)
    String values that make up the list.
    Example: ["19","49","99"]

  - `route_sets.routes.rule.condition.right.value_type` (string, required)
    Constant value type. Always `LIST_OF_INTS` for a list of integer comparisons.
    Enum: "LIST_OF_INTS"

  - `route_sets.routes.rule.condition.right.value` (array, required)
    Integer values that make up the list.
    Example: [19,49,99]

  - `route_sets.routes.rule.condition.right.value_type` (string, required)
    Constant value type. Always `LIST_OF_DOUBLES` for for a list of floating-point comparisons.
    Enum: "LIST_OF_DOUBLES"

  - `route_sets.routes.rule.condition.right.value` (array, required)
    Floating-point values that make up the list.
    Example: [19.99,49.99,99.99]

  - `route_sets.routes.rule.condition.type` (string, required)
    Condition kind discriminator. Always `COMPLEX` for a boolean group.
    Enum: "COMPLEX"

  - `route_sets.routes.rule.condition.boolean_operator` (string, required)
    Boolean operator applied across the child conditions.
    Enum: "AND", "OR"

  - `route_sets.routes.rule.condition.conditions` (array, required)
    Child conditions evaluated within the group.

  - `route_sets.routes.rule.condition.conditions.type` (string, required)
    Condition kind that determines the schema of remaining fields.
    Enum: "SIMPLE", "COMPLEX"

  - `route_sets.routes.rule.condition.conditions.type` (string, required)
    Condition kind discriminator. Always `SIMPLE` for a leaf comparison.
    Enum: "SIMPLE"

  - `route_sets.routes.rule.condition.conditions.comparison_operator` (string, required)
    Operator applied to the `left` and `right` operands.
    Enum: "EQUAL", "NOT_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN", "LESS_THAN_OR_EQUAL", "ONE_OF", "NOT_ONE_OF"

  - `route_sets.routes.rule.condition.conditions.type` (string, required)
    Condition kind discriminator. Always `COMPLEX` for a boolean group.
    Enum: "COMPLEX"

  - `route_sets.routes.rule.condition.conditions.boolean_operator` (string, required)
    Boolean operator applied across the child conditions.
    Enum: "AND", "OR"

  - `route_sets.routes.rule.condition.conditions.conditions` (array, required)
    Child conditions evaluated within the group.

  - `route_sets.created_at` (string, required)
    Date and time when the route set was created.
    Example: 2026-05-18T13:58:13.317000Z

  - `route_sets.updated_at` (string, required)
    Date and time when the route set was updated.
    Example: 2026-05-18T13:58:14.874000Z

  - `configuration_id` (string, required)
    Identifier of the routing configuration that the version belongs to.
    Example: cfg_01KRXP28JDKPZCBGS77SWRQWMA

  - `created_at` (string, required)
    Date and time when the version was created.
    Example: 2026-05-18T13:58:13.317000Z

  - `updated_at` (string, required)
    Date and time when the version was updated.
    Example: 2026-05-18T13:58:14.874000Z

## Response 400:

  - `400` (unknown)
    Bad request

## Response 400 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "VALIDATION"

  - `message` (string, required)
    Message describing the error.
    Example: One or more fields failed validation due to constraints

  - `context` (object, required)
    Additional context about the validation error, including specific constraints.
    Example: {"constraints":{"email":{"type":"TYPE","message":"The 'email' field must be a valid email address"},"age":{"type":"MIN","message":"The 'age' field must be a number greater than or equal to 18"}}}

  - `context.constraints` (object, required)
    Failed constraints keyed by the field name.

## Response 401:

  - `401` (unknown)
    Unauthenticated

## Response 401 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "UNAUTHENTICATED"

  - `message` (string, required)
    Message describing the error.
    Example: Credentials are invalid or missing

## Response 403:

  - `403` (unknown)
    Unauthorized

## Response 403 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "PERMISSION_DENIED"

  - `message` (string, required)
    Message describing the error.
    Example: Permission denied

## Response 404:

  - `404` (unknown)
    Not found

## Response 404 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "NOT_FOUND"

  - `message` (string, required)
    Message describing the error. The entity varies by endpoint.
    Example: The requested resource could not be found

## Response 429:

  - `429` (unknown)
    Too many requests

## Response 429 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "RATE_LIMIT"

  - `message` (string, required)
    Message describing the error.
    Example: Rate limit exhausted

  - `context` (object)
    Additional context about the error.

  - `context.next_try_at` (string)
    Timestamp indicating when to retry the request.
    Example: 2024-12-31T23:59:59.000000Z

## Response 200 examples:

  - `Single equality condition` (unknown)

  - `Rule covering all operand and value-type combinations` (unknown)

## Response 404 examples:

  - `notFound` (unknown)

