> ## Documentation Index
> Fetch the complete documentation index at: https://developer.hellgate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get decision details

> Retrieve a previously evaluated decision by its ID.

The entry includes the original decision, the rules that fired, backend results, the current payment lifecycle state, and any resolution.
Payment Card details are masked and not returned in detail.




## OpenAPI

````yaml /products/specter/openapi.yaml get /api/decisions/{id}
openapi: 3.1.0
info:
  contact:
    email: hello@starfish.team
    name: Starfish GmbH & Co. KG
    url: https://hellgate.io/cpa/specter
  description: Composable decision engine and fraud prevention service.
  license:
    name: Hellgate API Terms
    url: https://hellgate.io/terms-and-conditions
  title: Specter API
  version: '1.0'
servers:
  - description: Managed instance of Specter
    url: https://{instance}.{env}.on-hellgate.cloud
    variables:
      instance:
        default: my-instance
        description: Your unique instance slug, provided during onboarding.
      env:
        default: eu1
        description: Deployment environment (currently eu1).
security: []
tags:
  - description: Evaluate transactions and retrieve decision results.
    name: Decisions
  - description: Close decisions that were flagged for manual review.
    name: Resolutions
  - description: Report payment lifecycle events for a prior decision.
    name: Lifecycle Events
  - description: Manage rulesets and their activation lifecycle.
    name: Rulesets
  - description: Configure interceptors and intercept live payment requests.
    name: Interceptors
  - description: Subscribe to decision and event notifications.
    name: Webhooks
  - description: Manage blocked field values.
    name: Blacklist
paths:
  /api/decisions/{id}:
    get:
      tags:
        - Decisions
      summary: Get decision details
      description: >
        Retrieve a previously evaluated decision by its ID.


        The entry includes the original decision, the rules that fired, backend
        results, the current payment lifecycle state, and any resolution.

        Payment Card details are masked and not returned in detail.
      operationId: decisions_show
      parameters:
        - description: Decision ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DecisionEntry'
          description: Decision entry
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
          description: Not found
      callbacks: {}
      security:
        - bearerAuth: []
components:
  schemas:
    DecisionEntry:
      description: Persisted decision log entry.
      properties:
        id:
          format: uuid
          type: string
        amount:
          type:
            - integer
            - 'null'
        backend_results:
          description: One entry per backend rule that was executed.
          items:
            $ref: '#/components/schemas/BackendResult'
          type: array
        context:
          example: checkout
          type: string
        credential_fingerprint:
          example: crd_4ba218...
          type: string
        credential_type:
          description: Type of credential supplied in the request
          enum:
            - pan
            - masked_pan
            - sepa
          type:
            - string
            - 'null'
        currency:
          type:
            - string
            - 'null'
        customer_id:
          type:
            - string
            - 'null'
        decision:
          enum:
            - ALLOW
            - BLOCK
            - REVIEW
          type: string
        device_fingerprint:
          type:
            - string
            - 'null'
        device_ip:
          type:
            - string
            - 'null'
        evaluated_at:
          format: date-time
          type: string
        events:
          description: Lifecycle events ingested for this decision, ordered by occurred_at.
          items:
            properties:
              id:
                format: uuid
                type: string
              occurred_at:
                format: date-time
                type: string
              processed_at:
                format: date-time
                type: string
              type:
                enum:
                  - authorization
                  - capture
                  - refund
                  - void
                  - chargeback
                  - fraud_report
                  - failed
                type: string
            type: object
          type: array
        has_backend_error:
          description: >-
            True if any backend_results entry carries a non-nil error (e.g.
            "backend_capability_disabled").
          type: boolean
        integration:
          description: Integration type that originated this decision (e.g. 'interceptor')
          type:
            - string
            - 'null'
        interceptor_id:
          description: ID of the interceptor that originated this decision
          format: uuid
          type:
            - string
            - 'null'
        masked_credential:
          description: Display-safe masked representation, e.g. '411111 ****** 4242'
          example: 411111 ****** 4242
          type:
            - string
            - 'null'
        metadata:
          additionalProperties:
            type: string
          description: Merchant-supplied key-value pairs stored with the decision.
          type:
            - object
            - 'null'
        resolution:
          description: >-
            Present when the decision was REVIEW and has been resolved by the
            merchant.
          properties:
            action:
              enum:
                - ACCEPTED
                - REJECTED
              type: string
            resolved_at:
              format: date-time
              type: string
          type:
            - object
            - 'null'
        ruleset_id:
          format: uuid
          type:
            - string
            - 'null'
        ruleset_version:
          type:
            - integer
            - 'null'
        source:
          enum:
            - RULE_ENGINE
            - BACKEND
            - COMBINED
          type: string
        transaction_reference:
          type:
            - string
            - 'null'
        triggered_rules:
          items:
            $ref: '#/components/schemas/TriggeredRule'
          type: array
      title: DecisionEntry
      type: object
    Unauthorized:
      description: No valid authentication was provided.
      example:
        classifier: UNAUTHORIZED
        code: 401
        message: No valid means of authentication was provided
      properties:
        classifier:
          enum:
            - UNAUTHORIZED
          type: string
        code:
          enum:
            - 401
          type: integer
        message:
          type: string
      required:
        - classifier
        - code
        - message
      title: Unauthorized
      type: object
    Forbidden:
      description: The token lacks the scope required for this operation.
      example:
        classifier: FORBIDDEN
        code: 403
        message: Not allowed to access this resource or feature
      properties:
        classifier:
          enum:
            - FORBIDDEN
          type: string
        code:
          enum:
            - 403
          type: integer
        message:
          type: string
      required:
        - classifier
        - code
        - message
      title: Forbidden
      type: object
    NotFound:
      description: The requested resource does not exist.
      example:
        classifier: NOT_FOUND
        code: 404
        message: The requested resource does not exist
      properties:
        classifier:
          enum:
            - NOT_FOUND
          type: string
        code:
          enum:
            - 404
          type: integer
        message:
          type: string
      required:
        - classifier
        - code
        - message
      title: NotFound
      type: object
    BackendResult:
      description: Outcome of a single backend rule that was executed.
      properties:
        backend:
          type: string
        decision:
          enum:
            - ALLOW
            - BLOCK
            - REVIEW
          type:
            - string
            - 'null'
        error:
          description: >-
            Error code when the backend did not produce a decision.
            "insufficient_context" means required context fields were missing
            and no call was made.
          type:
            - string
            - 'null'
        latency_ms:
          type: integer
        link_execution_id:
          description: >-
            Execution ID from the Link integration. Present only for Link-backed
            backends.
          type:
            - string
            - 'null'
        link_timing:
          description: >-
            Server-Timing breakdown in milliseconds, parsed from the backend
            response. Present only for Link-backed backends.
          properties:
            external:
              type: number
            internal:
              type: number
            total:
              type: number
          type:
            - object
            - 'null'
        live:
          description: Whether the backend ran live (true) or in shadow mode (false).
          type: boolean
        missing_fields:
          description: >-
            Dot-notation paths of required context fields that were absent.
            Populated only when error is "insufficient_context".
          items:
            type: string
          type:
            - array
            - 'null'
        raw_response:
          type:
            - object
            - 'null'
        rule_id:
          type: string
      title: BackendResult
      type: object
    TriggeredRule:
      properties:
        action:
          enum:
            - BLOCK
            - REVIEW
          example: BLOCK
          type:
            - string
            - 'null'
        name:
          example: Block USD
          type:
            - string
            - 'null'
        rule_id:
          example: r1
          type: string
        type:
          enum:
            - condition
            - blacklist
            - backend
            - backend_group
          example: condition
          type: string
      title: TriggeredRule
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: >-
        HS256-signed JWT bearer token, obtained via the OAuth2
        client-credentials grant (see Authentication).
      scheme: bearer
      type: http

````