# 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

## 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 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.

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

  - `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"

  - `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.

  - `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", "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.

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

  - `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) — one of (discriminator: type):
    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.
    - SIMPLE:
      - `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"
      - `left` (object, required) — one of (discriminator: source):
        Left operand of a simple condition. Reads a value from a known payment property or from payment metadata.
        - PROPERTY:
          - `property_name` (string, required)
            Name of the payment property to read at evaluation time.
            Enum: "IS_3DS_FORCED_BY_CLIENT", "IS_EXTERNAL_MPI", "AMOUNT", "CURRENCY", "COUNTRY", "BIN_COUNTRY", "CARD_BRAND", "CARD_TYPE", "BANK", "BIN", "TRAFFIC_SOURCE", "WEBSITE", "PAYMENT_METHOD_TYPE", "IP_ADDRESS", "CUSTOMER_ACCOUNT_ID", "CUSTOMER_EMAIL", "IS_FRAUD_RISK_DETECTED", "INITIATOR_ORIGIN", "DATA_ORIGIN", "AMOUNT_USD", "IS_3DS_FORCED_BY_ANTIFRAUD", "INITIAL_CONNECTOR_ID", "INITIAL_CONNECTOR_ACCOUNT_ID", "IS_INIT_DSRP", "PAYMENT_TYPE", "CARD_RELOADABLE"
        - METADATA:
          - `full_path` (string, required)
            Path used to read the value from payment metadata.
            Example: "customer_segment"
          - `value_type` (string, required)
            Expected type of the resolved metadata value.
            Enum: "STRING", "INT", "DOUBLE", "BOOL"
      - `left.source` (string, required)
        Value source that determines the schema of remaining fields.
        Enum: "PROPERTY", "METADATA"
      - `right` (object, required) — one of (discriminator: value_type):
        Constant value provided directly in the rule definition. The value_type field selects the shape of the value payload.
        - STRING:
          - `value` (string, required)
            Constant string value.
            Example: "AGO"
        - INT:
          - `value` (integer, required)
            Constant integer value.
            Example: 100
        - DOUBLE:
          - `value` (number, required)
            Constant floating-point value.
            Example: 99.99
        - BOOL:
          - `value` (boolean, required)
            Constant boolean value.
            Example: true
        - LIST_OF_STRINGS:
          - `value` (array, required)
            String values that make up the list.
            Example: ["19","49","99"]
        - LIST_OF_INTS:
          - `value` (array, required)
            Integer values that make up the list.
            Example: [19,49,99]
        - LIST_OF_DOUBLES:
          - `value` (array, required)
            Floating-point values that make up the list.
            Example: [19.99,49.99,99.99]
      - `right.source` (string, required)
        Value source discriminator. Always CONSTANT for an inline value.
        Enum: "CONSTANT"
      - `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"
    - COMPLEX:
      - `boolean_operator` (string, required)
        Boolean operator applied across the child conditions.
        Enum: "AND", "OR"
      - `conditions` (array, required) — one of (discriminator: type):
        Child conditions evaluated within the group.
        - SIMPLE:
          - `comparison_operator` (string, required)
            Operator applied to the left and right operands.
            Enum: same as `comparison_operator` in "SIMPLE" (8 values)
          - `left` (object, required) — one of (discriminator: source):
            Left operand of a simple condition. Reads a value from a known payment property or from payment metadata.
            - PROPERTY:
              - `property_name` (string, required)
                Name of the payment property to read at evaluation time.
                Enum: same as `property_name` in "PROPERTY" (26 values)
            - METADATA:
              - `full_path` (string, required)
                Path used to read the value from payment metadata.
                Example: "customer_segment"
              - `value_type` (string, required)
                Expected type of the resolved metadata value.
                Enum: same as `value_type` in "METADATA" (4 values)
          - `left.source` (string, required)
            Value source that determines the schema of remaining fields.
            Enum: same as `left.source` in "SIMPLE" (2 values)
          - `right` (object, required) — one of (discriminator: value_type):
            Constant value provided directly in the rule definition. The value_type field selects the shape of the value payload.
            - STRING:
              - `value` (string, required)
                Constant string value.
                Example: "AGO"
            - INT:
              - `value` (integer, required)
                Constant integer value.
                Example: 100
            - DOUBLE:
              - `value` (number, required)
                Constant floating-point value.
                Example: 99.99
            - BOOL:
              - `value` (boolean, required)
                Constant boolean value.
                Example: true
            - LIST_OF_STRINGS:
              - `value` (array, required)
                String values that make up the list.
                Example: ["19","49","99"]
            - LIST_OF_INTS:
              - `value` (array, required)
                Integer values that make up the list.
                Example: [19,49,99]
            - LIST_OF_DOUBLES:
              - `value` (array, required)
                Floating-point values that make up the list.
                Example: [19.99,49.99,99.99]
          - `right.source` (string, required)
            Value source discriminator. Always CONSTANT for an inline value.
            Enum: same as `right.source` in "SIMPLE" (1 values)
          - `right.value_type` (string, required)
            Type of the constant value that determines the schema of value.
            Enum: same as `right.value_type` in "SIMPLE" (7 values)
        - COMPLEX:
          - `boolean_operator` (string, required)
            Boolean operator applied across the child conditions.
            Enum: same as `boolean_operator` in "COMPLEX" (2 values)
          - `conditions` (array, required) — one of (discriminator: type):
            Child conditions evaluated within the group.
            - SIMPLE:
              - `comparison_operator` (string, required)
                Operator applied to the left and right operands.
                Enum: same as `comparison_operator` in "SIMPLE" (8 values)
              - `left` (object, required)
                Left operand of a simple condition. Reads a value from a known payment property or from payment metadata.
              - `right` (object, required)
                Constant value provided directly in the rule definition. The value_type field selects the shape of the value payload.
            - COMPLEX:
              - `boolean_operator` (string, required)
                Boolean operator applied across the child conditions.
                Enum: same as `boolean_operator` in "COMPLEX" (2 values)
              - `conditions` (array, required)
                Child conditions evaluated within the group.
      - `conditions.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 that determines the schema of remaining fields.
    Enum: same as `conditions.type` in "COMPLEX" (2 values)

  - `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 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.
    Example: {"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"}}

## 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 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 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 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"


