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

# Create a funds recovery

> Opens a MED 2.0 funds recovery synchronously. A successful creation returns HTTP 201 with status CREATED. Reusing an Idempotency-Key returns the original response with HTTP 200. A duplicate recovery is rejected with 409 / PIX-0113. If the timestamp in rootTransactionId is outside the applicable MED contestation window, the request is rejected with 422 / PIX-0117. The window is determined by the funds recovery creation time: pacs.008 uses 80 calendar days; pacs.004 uses 30 calendar days before 2026-09-01T00:00:00Z and 80 calendar days from that instant onward. This timestamp validation does not confirm that the referenced transaction exists. The participant is determined by the authenticated tenant. participantId, reporterParticipant, rootTransactionType, and idempotencyKey are rejected when included in the body.



## OpenAPI

````yaml en/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: >-
    Public API for Pix keys, claims, fraud markers, infraction reports, and MED
    funds recovery.
  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: >-
      Replace the example host with the URL provided during environment
      onboarding.
security:
  - BearerAuth: []
tags:
  - description: Register, retrieve, list, update, and remove Pix keys.
    name: Entries
  - description: Look up Pix keys and check whether keys exist in the DICT directory.
    name: Keys
  - description: Manage ownership and portability claims for Pix keys.
    name: Claims
  - description: Manage participant-scoped MED 2.0 funds recoveries.
    name: Funds Recoveries
  - description: Manage MED 2.0 infraction reports for the authenticated organization.
    name: Infraction Reports
  - description: Create, query, cancel, and settle MED 2.0 refunds.
    name: Refunds
  - description: Create, query, list, and cancel DICT fraud markers.
    name: Fraud Markers
paths:
  /dict/funds-recoveries:
    post:
      tags:
        - Funds Recoveries
      summary: Create a funds recovery
      description: >-
        Opens a MED 2.0 funds recovery synchronously. A successful creation
        returns HTTP 201 with status CREATED. Reusing an Idempotency-Key returns
        the original response with HTTP 200. A duplicate recovery is rejected
        with 409 / PIX-0113. If the timestamp in rootTransactionId is outside
        the applicable MED contestation window, the request is rejected with 422
        / PIX-0117. The window is determined by the funds recovery creation
        time: pacs.008 uses 80 calendar days; pacs.004 uses 30 calendar days
        before 2026-09-01T00:00:00Z and 80 calendar days from that instant
        onward. This timestamp validation does not confirm that the referenced
        transaction exists. The participant is determined by the authenticated
        tenant. participantId, reporterParticipant, rootTransactionType, and
        idempotencyKey are rejected when included in the body.
      operationId: createFundsRecovery
      parameters:
        - description: Client-generated key used to retry exactly the same request safely.
          in: header
          name: Idempotency-Key
          required: true
          schema:
            description: >-
              Client-generated key used to retry exactly the same request
              safely.
            examples:
              - a1b2c3d4-0000-0000-0000-000000000001
            type: string
          example: pix-demo-20260903-000001
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFundsRecoveryBody'
            examples:
              fictitiousExample:
                summary: Fictitious example
                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:
                fictitiousExample:
                  summary: Fictitious example
                  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:
                fictitiousExample:
                  summary: Fictitious example
                  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 with fictitious data
          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

````