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

# Configura la tasa mensual de las ofertas de consignado del tenant

> Almacena (o corrige) la tasa de interés mensual que la institución autoriza para sus ofertas de crédito consignado. El valor es un decimal de PORCENTAJE mensual: 1,80 % al mes se envía como 1.80, nunca 0.018 (el Manual 003 v1.19, sección 3.1.1, define valorTaxaMensal como NÚMERO(7,2) (porcentual)). Admite como máximo 5 dígitos enteros y 2 decimales; se rechaza cero. Es una configuración comercial, no un secreto: se almacena en Postgres junto con los metadatos de las credenciales y nunca se escribe en el almacén de secretos del tenant. Sin una tasa configurada, el gateway no presenta ninguna oferta en lugar de calcular el precio de un préstamo por sí mismo.



## OpenAPI

````yaml es/openapi/v3-current/consignado.yaml put /v1/credentials/dataprev/taxa-mensal
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    Superficie OpenAPI 3.1 para Lerian Consignado — Dataprev, el rail del
    recorrido de crédito que almacena las credenciales de acceso y la
    configuración del rail de cada tenant. Cubre el estado por tenant, la
    rotación del certificado de cliente y de OAuth2, la configuración del código
    COMPE del solicitante y la tasa mensual de las ofertas. El material secreto
    se escribe en el almacén de secretos del tenant y ninguna operación lo
    devuelve. El código público del solicitante y la configuración de la tasa se
    almacenan como metadatos no secretos y la operación de estado puede
    devolverlos.
  license:
    name: Lerian Studio General License
  title: Lerian Consignado API
  version: v1.0.0
servers:
  - url: https://consignado.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: >-
      Custodia de credenciales de Dataprev y configuración pública del rail por
      tenant (carga, estado, rotación, revocación, código del solicitante y tasa
      mensual de las ofertas)
    name: Credentials
paths:
  /v1/credentials/dataprev/taxa-mensal:
    put:
      tags:
        - Credentials
      summary: Configura la tasa mensual de las ofertas de consignado del tenant
      description: >-
        Almacena (o corrige) la tasa de interés mensual que la institución
        autoriza para sus ofertas de crédito consignado. El valor es un decimal
        de PORCENTAJE mensual: 1,80 % al mes se envía como 1.80, nunca 0.018 (el
        Manual 003 v1.19, sección 3.1.1, define valorTaxaMensal como NÚMERO(7,2)
        (porcentual)). Admite como máximo 5 dígitos enteros y 2 decimales; se
        rechaza cero. Es una configuración comercial, no un secreto: se almacena
        en Postgres junto con los metadatos de las credenciales y nunca se
        escribe en el almacén de secretos del tenant. Sin una tasa configurada,
        el gateway no presenta ninguna oferta en lugar de calcular el precio de
        un préstamo por sí mismo.
      operationId: putDataprevTaxaMensal
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutTaxaMensalRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialStatusResponse'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    PutTaxaMensalRequest:
      additionalProperties: false
      properties:
        taxaMensal:
          description: >-
            The institution's configured monthly interest rate for consignado
            bids, as a PERCENT-per-month decimal: 1,80% per month is 1.80, never
            0.018. At most 5 integer and 2 fractional digits (Manual 003 v1.19
            §3.1.1, NÚMERO(7,2) (percentual)); zero is not a rate.
          examples:
            - '1.80'
          pattern: ^(0\.(0[1-9]|[1-9][0-9]?)|[1-9][0-9]{0,4}(\.[0-9]{1,2})?)$
          type: string
      required:
        - taxaMensal
      type: object
    CredentialStatusResponse:
      additionalProperties: false
      properties:
        certFingerprint:
          description: >-
            SHA-256 hex fingerprint of the stored certificate (absent when
            none).
          examples:
            - 3b1f...c0
          type: string
        certNotAfter:
          description: RFC 3339 cert expiry (UTC); absent when no cert is stored.
          examples:
            - '2027-01-01T00:00:00Z'
          format: date-time
          type: string
        certPresent:
          description: Whether a client certificate is stored for the tenant.
          type: boolean
        codigoSolicitante:
          description: >-
            Dataprev codigoSolicitante: the institution's BACEN COMPE code (3
            digits, zero-padded, 001-999). Public, non-secret; absent when none
            is stored.
          examples:
            - '341'
          type: string
        oauthPresent:
          description: Whether OAuth2 client_credentials are stored for the tenant.
          type: boolean
        provider:
          description: External rail the credentials belong to.
          examples:
            - dataprev
          type: string
        revokedAt:
          description: >-
            Credential revocation timestamp (RFC 3339, UTC); absent when
            credentials were never revoked.
          examples:
            - '2026-07-14T15:30:00Z'
          format: date-time
          type: string
        taxaMensal:
          description: >-
            Configured monthly interest rate for consignado bids, as a
            PERCENT-per-month decimal (1.80 is 1,80% per month). Commercial
            configuration, non-secret; absent when none is stored, in which case
            the gateway places no bid.
          examples:
            - '1.80'
          type: string
        updatedAt:
          description: Last-update timestamp (RFC 3339, UTC).
          examples:
            - '2026-06-23T12:00:00Z'
          format: date-time
          type: string
      required:
        - provider
        - certPresent
        - oauthPresent
        - 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
    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

````