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

# Release a stalled posting

> Re-runs the parked posting through the ledger relay, which asks Midaz first. If Midaz holds it, the receipt is written and nothing is sent. If it does not and the lender's record shows the posting was sent long ago, the call is refused (LENDER-0457) until the operator looks the posting key up in Midaz and repeats it with midazTransactionId, when Midaz holds the transaction (the receipt is written from it, nothing is sent), or with ledgerCheckedAbsentSentAt set to the case's lastSentAt, when it holds nothing (that stale record is deleted and the posting is sent once; a record written after the check is never deleted). A midazTransactionId that is not this posting's is refused (LENDER-0463). If Midaz still refuses, the case stays open (LENDER-0458); if it gives no answer, repeat the release (LENDER-0462). A posting that is not parked answers released false. The attempt is written to the contract's audit history before anything is done.



## OpenAPI

````yaml /en/openapi/v3-current/lender.yaml post /api/v1/internal/accounting/parked-postings/{eventId}/release
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    Code-first OpenAPI 3.1 surface for the Lender service. Routes that move
    money are at-most-once per X-Idempotency: when one answers 5xx, the
    X-Idempotency-Fenced response header says whether that key is now refusing
    resends (true) or free to retry (false or absent).
  license:
    name: Lerian Studio General License
  title: Lender API
  version: 1.0.0
servers:
  - url: https://lender.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: >-
      Caller session projection: validated subject and effective permissions for
      the presented token.
    name: Session
  - description: >-
      Ledger accounting operations: journal entries and accrual postings for
      loan accounts. Operations under /api/v1/internal are back-office
      operations for the client's operators: they require a person's login, and
      a service credential gets 403.
    name: Accounting
  - description: >-
      Loan application intake and lifecycle: submission, decisioning, and
      status.
    name: LoanApplications
  - description: >-
      Loan product catalog: definition, versioning, and activation of lending
      products.
    name: LoanProducts
  - description: >-
      Loan account servicing operations: balances, schedules, and account-level
      actions.
    name: Loan Accounts
  - description: >-
      Portfolio dashboard read operations: aggregated portfolio and performance
      views.
    name: Dashboard
  - description: >-
      Jurisdiction registry: supported jurisdiction profiles and their
      capabilities.
    name: Jurisdictions
  - description: >-
      Jurisdiction-specific loan application operations (Brazil origination
      surface).
    name: Loan Applications
  - description: >-
      Tax computation operations for jurisdiction-specific lending (e.g. Brazil
      IOF).
    name: Tax
  - description: >-
      Brazil consignado privado operations: contract lifecycle, exclusion
      repair, and compensating adjustments. Operations under /api/v1/internal
      are back-office operations for the client's operators: they require a
      person's login, and a service credential gets 403.
    name: Consignado
  - description: >-
      Inbound record quarantine. Operations under /api/v1/internal are
      back-office operations for the client's operators: they require a person's
      login, and a service credential gets 403.
    name: Streaming
  - description: >-
      Credit-instrument document template registry: versioned drafting and
      publication of CCB clausulado.
    name: DocumentTemplates
paths:
  /api/v1/internal/accounting/parked-postings/{eventId}/release:
    post:
      tags:
        - Accounting
      summary: Release a stalled posting
      description: >-
        Re-runs the parked posting through the ledger relay, which asks Midaz
        first. If Midaz holds it, the receipt is written and nothing is sent. If
        it does not and the lender's record shows the posting was sent long ago,
        the call is refused (LENDER-0457) until the operator looks the posting
        key up in Midaz and repeats it with midazTransactionId, when Midaz holds
        the transaction (the receipt is written from it, nothing is sent), or
        with ledgerCheckedAbsentSentAt set to the case's lastSentAt, when it
        holds nothing (that stale record is deleted and the posting is sent
        once; a record written after the check is never deleted). A
        midazTransactionId that is not this posting's is refused (LENDER-0463).
        If Midaz still refuses, the case stays open (LENDER-0458); if it gives
        no answer, repeat the release (LENDER-0462). A posting that is not
        parked answers released false. The attempt is written to the contract's
        audit history before anything is done.
      operationId: releaseParkedPosting
      parameters:
        - description: Outbox event id of the parked posting, from the case list.
          in: path
          name: eventId
          required: true
          schema:
            description: Outbox event id of the parked posting, from the case list.
            examples:
              - 550e8400-e29b-41d4-a716-446655440003
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReleaseParkedPostingHumaBody'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseParkedPostingOutputBody'
          description: OK
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unauthorized
        '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
        '413':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Request Entity Too Large
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unprocessable Entity
        '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
        '504':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Gateway Timeout
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            Any other status this operation may carry, rendered as a problem
            document — including a refusal produced ahead of the service, such
            as a gateway or ingress answering on its behalf.
components:
  schemas:
    ReleaseParkedPostingHumaBody:
      additionalProperties: false
      properties:
        ledgerCheckedAbsentSentAt:
          description: >-
            The case's lastSentAt, sent back only after the operator looked the
            posting key up in Midaz and it holds nothing. Releases a posting
            whose sent record Midaz cannot confirm (LENDER-0457) by sending it
            once, and only while the sent record is no younger than this value;
            ignored when midazTransactionId is given.
          format: date-time
          type: string
        midazTransactionId:
          description: >-
            The id of the Midaz transaction that holds this posting, when the
            operator found it there (LENDER-0457). The lender reads that
            transaction by id, checks its correlationId metadata is this
            posting's key, and writes the receipt from it; nothing is sent.
          format: uuid
          type: string
      type: object
    ReleaseParkedPostingOutputBody:
      additionalProperties: false
      properties:
        released:
          description: >-
            True when this call closed the case: Midaz already held the posting
            and its receipt was written, or the posting was sent once. False
            when the posting was not parked (a receipt exists or it is not
            quarantined); nothing was changed.
          type: boolean
      required:
        - released
      type: object
    Detail:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          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
    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.