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

# Get DICT funds-recovery tracking graph

> Fetches the AUTOMATED-flow fraud-tracking graph from BACEN and projects it verbatim. The manual createTrackingGraph POST is BACEN-deprecated; only this read is current.



## OpenAPI

````yaml /pt/openapi/v3-current/spi-dict.yaml get /api/v1/dict/funds-recoveries/{id}/tracking-graph
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    OpenAPI 3.1 surface for the DICT (Diretório de Identificadores de Contas
    Transacionais) capability of Lerian SPI, the direct integration between the
    institution and the Brazilian Instant Payment System (SPI/Pix). It covers
    the PIX key lifecycle, portability and ownership claims, the MED 2.0 dispute
    surface (infraction reports, refunds, fraud markers, and funds recoveries),
    antifraud statistics, synchronous DICT reports, and the internal operations
    that keep the key directory consistent.
  license:
    name: Lerian Studio General License
  title: Lerian SPI — DICT API
  version: 1.0.0
servers:
  - url: https://api.example.com
    description: >-
      Replace the example host with the URL provided during environment
      onboarding.
security: []
tags:
  - description: 'PIX key lifecycle: register, list, search, lookup, delete, and statistics.'
    name: Keys
  - description: >-
      PIX key portability and ownership claims through their full lifecycle
      (initiate, confirm, reject, cancel, acknowledge, complete).
    name: Claims
  - description: 'DICT infraction reports: list and retrieve.'
    name: Infractions
  - description: 'DICT refund requests: create, list, and retrieve.'
    name: Refunds
  - description: 'PIX fraud markers: create, list, and statistics.'
    name: Fraud Markers
  - description: >-
      Durable MED operation-intent status: the operationId every
      create/lifecycle-transition backlog route returns or references on every
      outcome, queryable independently of the business resource.
    name: Operations
  - description: >-
      Synchronous reports over Lerian SPI's own DICT record: COUNT(*) summaries
      of keys (by type/status) and claims (by type/status + open-past-deadline).
      COUNT-only — DICT holds no money.
    name: Reports
  - description: 'Internal DICT operations: claim deadline processing.'
    name: Internal
  - description: >-
      DICT synchronism checks transported to BACEN for the participant named in
      X-ISPB: sync verification, CID resolution and CID set events, projected
      verbatim.
    name: VSync
paths:
  /api/v1/dict/funds-recoveries/{id}/tracking-graph:
    get:
      tags:
        - Funds Recoveries
      summary: Get DICT funds-recovery tracking graph
      description: >-
        Fetches the AUTOMATED-flow fraud-tracking graph from BACEN and projects
        it verbatim. The manual createTrackingGraph POST is BACEN-deprecated;
        only this read is current.
      operationId: getFundsRecoveryTrackingGraph
      parameters:
        - description: >-
            BACEN-assigned funds-recovery resource UUID (same public identity as
            GET .../funds-recoveries/{id}); the graph is fetched from BACEN by
            this same id
          in: path
          name: id
          required: true
          schema:
            description: >-
              BACEN-assigned funds-recovery resource UUID (same public identity
              as GET .../funds-recoveries/{id}); the graph is fetched from BACEN
              by this same id
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackingGraphResponse'
                description: >-
                  BACEN-projected fraud-tracking graph, verbatim, with no local
                  computation
          description: OK
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Forbidden
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Not Found
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Conflict
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unprocessable Entity
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Service Unavailable
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    TrackingGraphResponse:
      additionalProperties: false
      properties:
        accounts:
          description: Graph account nodes
          items:
            $ref: '#/components/schemas/TrackingGraphAccountResponse'
          type: array
        bacen:
          $ref: '#/components/schemas/BACENEnvelopeResponse'
          description: >-
            BACEN's own operational envelope for this call (this surface is a
            live pass-through with no local row; the envelope reflects THIS
            request, not a persisted last interaction).
        creationTime:
          description: Timestamp the graph was created at BACEN (RFC 3339), when present
          examples:
            - '2020-01-17T10:00:00.000Z'
          type: string
        fundsRecoveryId:
          description: BACEN-assigned funds-recovery id the graph belongs to
          examples:
            - ca1b9c01-ff9e-4a58-90ab-d31512e15ce0
          type: string
        parameters:
          $ref: '#/components/schemas/TrackingGraphParametersResponse'
          description: Graph-building thresholds BACEN applied
        persons:
          description: Graph person nodes (anonymised)
          items:
            $ref: '#/components/schemas/TrackingGraphPersonResponse'
          type: array
        rootTransactionId:
          description: >-
            Contested transaction identifier the graph was built from: a
            payment's EndToEndID (E-prefixed) or a contested return operation's
            RtrId (D-prefixed)
          examples:
            - E99999010202607100915F5E4D3C2B1A
          type: string
        transactions:
          description: Graph transaction edges
          items:
            $ref: '#/components/schemas/TrackingGraphTransactionResponse'
          type: array
      required:
        - fundsRecoveryId
        - rootTransactionId
        - parameters
        - persons
        - accounts
        - transactions
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          type: string
        correlationId:
          description: Request-scoped correlation identifier echoing X-Request-ID.
          examples:
            - req-7a3f9c2e
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
        upstream:
          $ref: '#/components/schemas/Upstream'
          description: >-
            RFC 9457 extension member: the error a proxied third-party provider
            reported. Absent unless the emitting service explicitly surfaced
            one.
      required:
        - correlationId
      type: object
    TrackingGraphAccountResponse:
      additionalProperties: false
      properties:
        id:
          description: Graph-local node id (NOT a real account identifier)
          examples:
            - 1
          format: int64
          type: integer
        openingDate:
          description: Account opening date (RFC 3339), when present
          examples:
            - '2010-01-10T03:00:00Z'
          type: string
        ownerId:
          description: Graph-local person node id that owns this account
          examples:
            - 1
          format: int64
          type: integer
        participant:
          description: Account-holding participant ISPB
          examples:
            - '99999010'
          type: string
      required:
        - id
        - ownerId
        - participant
      type: object
    BACENEnvelopeResponse:
      additionalProperties: false
      properties:
        correlationId:
          description: >-
            BACEN's own correlation identifier for its most recent interaction
            on this record — the wire value, distinct from any request-scoped
            echo.
          examples:
            - a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
          type: string
        lastModified:
          description: >-
            BACEN's own LastModified for this resource (RFC 3339, UTC) — the
            version this response reflects; present only on the MED resources
            (infraction, refund, fraud marker, funds recovery).
          examples:
            - '2026-06-14T12:00:00Z'
          type: string
        responseTime:
          description: >-
            Instant BACEN answered its most recent interaction on this record,
            RFC 3339 (UTC); omitted when BACEN's response carried no parseable
            instant.
          examples:
            - '2026-06-14T12:00:00Z'
          type: string
      required:
        - correlationId
      type: object
    TrackingGraphParametersResponse:
      additionalProperties: false
      properties:
        hopWindow:
          description: >-
            Time window (ISO 8601 duration) between a transaction entering and
            leaving an account for both to be linked
          examples:
            - PT24H
          type: string
        maxHops:
          description: Maximum graph depth
          examples:
            - 5
          format: int64
          type: integer
        maxTransactions:
          description: Maximum number of transactions included in the graph
          examples:
            - 500
          format: int64
          type: integer
        minTransactionAmount:
          description: >-
            Minimum transaction amount included in the graph (BACEN wire value,
            projected verbatim)
          examples:
            - '200.00'
          type: string
      required:
        - minTransactionAmount
        - maxTransactions
        - hopWindow
        - maxHops
      type: object
    TrackingGraphPersonResponse:
      additionalProperties: false
      properties:
        entityCreationDate:
          description: Legal-person entity creation date (RFC 3339), when present
          examples:
            - '2010-01-10T03:00:00Z'
          type: string
        id:
          description: Graph-local node id (NOT a real person identifier)
          examples:
            - 1
          format: int64
          type: integer
        type:
          description: 'Person type: NATURAL_PERSON or LEGAL_PERSON'
          examples:
            - NATURAL_PERSON
          type: string
      required:
        - id
        - type
      type: object
    TrackingGraphTransactionResponse:
      additionalProperties: false
      properties:
        amount:
          description: Transaction amount (BACEN wire value, projected verbatim)
          examples:
            - '1000.20'
          type: string
        creditorAccountId:
          description: Graph-local destination account node id
          examples:
            - 2
          format: int64
          type: integer
        debtorAccountId:
          description: Graph-local source account node id
          examples:
            - 1
          format: int64
          type: integer
        id:
          description: Transaction end-to-end id (edge identifier)
          examples:
            - E99999010202607100930A1B2C3D4E5F
          type: string
        refundableAmount:
          description: Refundable amount (BACEN wire value, projected verbatim)
          examples:
            - '900.10'
          type: string
        settlementTime:
          description: Settlement timestamp, when present
          examples:
            - '2024-10-01T10:00:00.000Z'
          type: string
      required:
        - id
        - debtorAccountId
        - creditorAccountId
        - amount
        - refundableAmount
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.