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

# Crear una recuperación de fondos

> Se abre una recuperación de fondos de MED 2.0 de forma síncrona. Una creación correcta devuelve HTTP 201 con estado CREATED. La reutilización de una Idempotency-Key devuelve la respuesta original con HTTP 200. Una recuperación duplicada se rechaza con 409 / PIX-0113. Si el timestamp de rootTransactionId está fuera de la ventana de impugnación de MED aplicable, la solicitud se rechaza con 422 / PIX-0117. La ventana se determina según el momento de creación de la recuperación: pacs.008 utiliza 80 días calendario; pacs.004 utiliza 30 días calendario antes de 2026-09-01T00:00:00Z y 80 días calendario desde ese instante. Esta validación del timestamp no confirma que exista la transacción referenciada. El participante se determina a partir del tenant autenticado. participantId, reporterParticipant, rootTransactionType e idempotencyKey se rechazan cuando se incluyen en el cuerpo.



## OpenAPI

````yaml es/openapi/v3-current/pix-lerian-dict.yaml POST /dict/funds-recoveries
openapi: 3.1.0
info:
  contact:
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    API pública para claves Pix, reclamos, marcadores de fraude, reportes de
    infracción y recuperación de fondos del MED.
  license:
    name: Elastic License 2.0
    url: https://www.elastic.co/licensing/elastic-license
  title: Pix Lerian — DICT
  version: release-candidate
servers:
  - url: https://api.example.com/dict-hub/v1
    description: >-
      El host de ejemplo debe reemplazarse por la URL proporcionada durante el
      onboarding del entorno.
security:
  - BearerAuth: []
tags:
  - description: Registro, consulta, listado, actualización y eliminación de claves Pix.
    name: Entries
  - description: >-
      Consulta de claves Pix y verificación de su existencia en el directorio
      DICT.
    name: Keys
  - description: Gestión de reclamaciones de titularidad y portabilidad de claves Pix.
    name: Claims
  - description: Gestión de recuperaciones de fondos de MED 2.0 asociadas al participante.
    name: Funds Recoveries
  - description: >-
      Gestión de reportes de infracción de MED 2.0 para la organización
      autenticada.
    name: Infraction Reports
  - description: Creación, consulta, cancelación y liquidación de devoluciones de MED 2.0.
    name: Refunds
  - description: Creación, consulta, listado y cancelación de marcadores de fraude de DICT.
    name: Fraud Markers
paths:
  /dict/funds-recoveries:
    post:
      tags:
        - Funds Recoveries
      summary: Crear una recuperación de fondos
      description: >-
        Se abre una recuperación de fondos de MED 2.0 de forma síncrona. Una
        creación correcta devuelve HTTP 201 con estado CREATED. La reutilización
        de una Idempotency-Key devuelve la respuesta original con HTTP 200. Una
        recuperación duplicada se rechaza con 409 / PIX-0113. Si el timestamp de
        rootTransactionId está fuera de la ventana de impugnación de MED
        aplicable, la solicitud se rechaza con 422 / PIX-0117. La ventana se
        determina según el momento de creación de la recuperación: pacs.008
        utiliza 80 días calendario; pacs.004 utiliza 30 días calendario antes de
        2026-09-01T00:00:00Z y 80 días calendario desde ese instante. Esta
        validación del timestamp no confirma que exista la transacción
        referenciada. El participante se determina a partir del tenant
        autenticado. participantId, reporterParticipant, rootTransactionType e
        idempotencyKey se rechazan cuando se incluyen en el cuerpo.
      operationId: createFundsRecovery
      parameters:
        - description: >-
            Clave generada por el cliente para reintentar exactamente la misma
            solicitud de forma segura.
          in: header
          name: Idempotency-Key
          required: true
          schema:
            description: >-
              Clave generada por el cliente para reintentar exactamente la misma
              solicitud de forma segura.
            examples:
              - a1b2c3d4-0000-0000-0000-000000000001
            type: string
          example: pix-demo-20260903-000001
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFundsRecoveryBody'
            examples:
              ejemploFicticio:
                summary: Ejemplo ficticio
                value:
                  accountId: 550e8400-e29b-41d4-a716-446655440000
                  contactInformation:
                    email: user@example.com
                    phone: '+5511999999999'
                  metadata: metadata-example
                  reportDetails: Victim of a WhatsApp scam
                  rootTransactionId: E12345678202605171530aB3xK9mWq2z
                  situationType: SCAM
                  trackingGraphParameters: trackinggraphparameters-example
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundsRecoveryOutput'
              examples:
                ejemploFicticio:
                  summary: Ejemplo ficticio
                  value:
                    accountId: 550e8400-e29b-41d4-a716-446655440000
                    bacenFundsRecoveryId: 9f3a8b7e-2c1d-4e5a-8b6f-1a2b3c4d5e6f
                    contactInformation:
                      email: user@example.com
                      phone: '+5511999999999'
                    correlationId: 7c9e6679742540de944be07fc1f90ae7
                    createdAt: '2026-05-17T13:30:00Z'
                    id: 018f8c1d-1234-7abc-9def-000000000001
                    metadata: metadata-example
                    participantId: '12345678'
                    reportDetails: Victim of a WhatsApp scam
                    reporterParticipant: '12345678'
                    rootTransactionId: E12345678202605171530aB3xK9mWq2z
                    situationType: SCAM
                    status: CREATED
                    trackingGraph: trackinggraph-example
                    trackingGraphParameters: trackinggraphparameters-example
                    updatedAt: '2026-05-17T13:30:00Z'
          description: >-
            Idempotent replay: a repeated Idempotency-Key returns the funds
            recovery created by the first request (cached response body).
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundsRecoveryOutput'
              examples:
                ejemploFicticio:
                  summary: Ejemplo ficticio
                  value:
                    accountId: 550e8400-e29b-41d4-a716-446655440000
                    bacenFundsRecoveryId: 9f3a8b7e-2c1d-4e5a-8b6f-1a2b3c4d5e6f
                    contactInformation:
                      email: user@example.com
                      phone: '+5511999999999'
                    correlationId: 7c9e6679742540de944be07fc1f90ae7
                    createdAt: '2026-05-17T13:30:00Z'
                    id: 018f8c1d-1234-7abc-9def-000000000001
                    metadata: metadata-example
                    participantId: '12345678'
                    reportDetails: Victim of a WhatsApp scam
                    reporterParticipant: '12345678'
                    rootTransactionId: E12345678202605171530aB3xK9mWq2z
                    situationType: SCAM
                    status: CREATED
                    trackingGraph: trackinggraph-example
                    trackingGraphParameters: trackinggraphparameters-example
                    updatedAt: '2026-05-17T13:30:00Z'
          description: Created
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      x-codeSamples:
        - lang: bash
          label: cURL con datos ficticios
          source: |-
            curl --request POST \
              --url https://api.example.com/dict-hub/v1/dict/funds-recoveries \
              --header 'Authorization: Bearer demo-access-token' \
              --header 'Content-Type: application/json' \
              --header 'Idempotency-Key: pix-demo-20260903-000001' \
              --data '{
              "accountId": "550e8400-e29b-41d4-a716-446655440000",
              "contactInformation": {
                "email": "user@example.com",
                "phone": "+5511999999999"
              },
              "metadata": "metadata-example",
              "reportDetails": "Victim of a WhatsApp scam",
              "rootTransactionId": "E12345678202605171530aB3xK9mWq2z",
              "situationType": "SCAM",
              "trackingGraphParameters": "trackinggraphparameters-example"
            }'
components:
  schemas:
    CreateFundsRecoveryBody:
      additionalProperties: false
      properties:
        accountId:
          examples:
            - 550e8400-e29b-41d4-a716-446655440000
          type: string
        contactInformation:
          $ref: '#/components/schemas/CreateFundsRecoveryBodyContactInformationStruct'
        metadata: {}
        reportDetails:
          examples:
            - Victim of a WhatsApp scam
          type: string
        rootTransactionId:
          examples:
            - E12345678202605171530aB3xK9mWq2z
          type: string
        situationType:
          enum:
            - SCAM
            - ACCOUNT_TAKEOVER
            - COERCION
            - FRAUDULENT_ACCESS
            - OTHER
            - UNKNOWN
          examples:
            - SCAM
          type: string
        trackingGraphParameters: {}
      required:
        - accountId
        - rootTransactionId
        - situationType
        - contactInformation
      type: object
    FundsRecoveryOutput:
      additionalProperties: false
      properties:
        accountId:
          examples:
            - 550e8400-e29b-41d4-a716-446655440000
          type: string
        bacenFundsRecoveryId:
          examples:
            - 9f3a8b7e-2c1d-4e5a-8b6f-1a2b3c4d5e6f
          type: string
        contactInformation:
          $ref: '#/components/schemas/ContactInformationOutput'
        correlationId:
          examples:
            - 7c9e6679742540de944be07fc1f90ae7
          type: string
        createdAt:
          examples:
            - '2026-05-17T13:30:00Z'
          format: date-time
          type: string
        id:
          examples:
            - 018f8c1d-1234-7abc-9def-000000000001
          type: string
        metadata: {}
        participantId:
          examples:
            - '12345678'
          type: string
        reportDetails:
          examples:
            - Victim of a WhatsApp scam
          type: string
        reporterParticipant:
          examples:
            - '12345678'
          type: string
        rootTransactionId:
          examples:
            - E12345678202605171530aB3xK9mWq2z
          type: string
        situationType:
          enum:
            - SCAM
            - ACCOUNT_TAKEOVER
            - COERCION
            - FRAUDULENT_ACCESS
            - OTHER
            - UNKNOWN
          examples:
            - SCAM
          type: string
        status:
          enum:
            - CREATED
            - TRACKED
            - AWAITING_ANALYSIS
            - ANALYSED
            - REFUNDING
            - COMPLETED
            - CANCELLED
          examples:
            - CREATED
          type: string
        trackingGraph: {}
        trackingGraphParameters: {}
        updatedAt:
          examples:
            - '2026-05-17T13:30:00Z'
          format: date-time
          type: string
      required:
        - id
        - bacenFundsRecoveryId
        - participantId
        - accountId
        - rootTransactionId
        - situationType
        - status
        - reporterParticipant
        - contactInformation
        - createdAt
        - updatedAt
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          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.
      type: object
    CreateFundsRecoveryBodyContactInformationStruct:
      additionalProperties: false
      properties:
        email:
          examples:
            - user@example.com
          type: string
        phone:
          examples:
            - '+5511999999999'
          type: string
      required:
        - email
        - phone
      type: object
    ContactInformationOutput:
      additionalProperties: false
      properties:
        email:
          examples:
            - user@example.com
          type: string
        phone:
          examples:
            - '+5511999999999'
          type: string
      required:
        - email
        - phone
      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

````