openapi: 3.0.1
info:
  license:
    name: Khipu Open Data API
    url: https://khipu.com
  title: TGR
  description: ''
  version: v1.0
servers:
  - url: https://api.khipu.com
    description: Production
security:
  - JWT: []
  - Api-Key: []
paths:
  /v1/cl/services/tgr.cl/token:
    post:
      summary: Account Link
      deprecated: true
      description: >-
        **Este método se está descontinuando y se retirará en los próximos
        meses. Migre su implementación actual para usar [tokens
        OAuth](https://docs.khipu.com/portal/es/authentication) en su lugar.**


        Este método se conecta a la cuenta del usuario en **TGR** y retorna un
        token  vinculado a esa cuenta que puede ser usado en operaciones
        futuras, evitando la necesidad de enviar  sus credenciales en texto
        plano al llamar a los servicios bancarios.
      operationId: AccountLink
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthCredential'
        required: true
      responses:
        '200':
          description: >-
            Operación exitosa. Retorna un objeto JSON con el token de la cuenta
            en el campo `Data`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponseOk'
        '400':
          description: Solicitud Incorrecta
        '401':
          description: No autorizado - Credenciales inválidas o faltantes
        '404':
          description: No encontrado - Recurso no disponible
        '500':
          description: Error en el servicio remoto :(
  /v1/cl/services/tgr.cl/current-agreements-v2:
    post:
      summary: Current Agreements v2
      description: >-
        Este método se conecta a la cuenta especificada por el usuario en la
        **Tesorería General de la Republica (TGR)** y retorna los "Convenios
        vigentes".


        El uso del campo `CallbackUrl` desencadenará un proceso asíncrono y los
        datos resultantes se enviarán más tarde al webhook especificado. Esta es
        la forma preferida de interactuar con nuestros servicios, ya que asegura
        que se harán todos los esfuerzos para extraer los datos y cumplir  con
        su solicitud dentro de un plazo razonable. Si desea la respuesta de
        inmediato, omita el campo `CallbackUrl` pero tenga en cuenta que puede
        provocar tiempos de espera dependiendo del tamaño del resultado de los
        datos y las condiciones de la red.
      operationId: CurrentAgreementsV2
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CurrentAgreementsV2Request'
        required: true
      responses:
        '200':
          description: Operación exitosa. Retorna un objeto JSON con los datos solicitados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentAgreementsV2ResponseSyncOk'
        '202':
          description: >-
            Operación exitosa. Retorna un mensaje JSON informando el resultado
            de la operación solicitada. La respuesta completa, con el mismo
            esquema que la versión síncrona, se enviará al URL de callback
            proporcionado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentAgreementsV2ResponseAsync'
        '400':
          description: Solicitud incorrecta
        '401':
          description: No autorizado - Credenciales inválidas o faltantes
        '404':
          description: No encontrado - Recurso no disponible
        '500':
          description: Error en el servicio remoto :(
  /v1/cl/services/tgr.cl/expired-agreements-v2:
    post:
      summary: Expired Agreements v2
      description: >-
        Este método se conecta a la cuenta especificada por el usuario en la
        **Tesorería General de la Republica (TGR)** y retorna los "Convenios
        vencidos".


        El uso del campo `CallbackUrl` desencadenará un proceso asíncrono y los
        datos resultantes se enviarán más tarde al webhook especificado. Esta es
        la forma preferida de interactuar con nuestros servicios, ya que asegura
        que se harán todos los esfuerzos para extraer los datos y cumplir  con
        su solicitud dentro de un plazo razonable. Si desea la respuesta de
        inmediato, omita el campo `CallbackUrl` pero tenga en cuenta que puede
        provocar tiempos de espera dependiendo del tamaño del resultado de los
        datos y las condiciones de la red.
      operationId: ExpiredAgreementsV2
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpiredAgreementsV2Request'
        required: true
      responses:
        '200':
          description: Operación exitosa. Retorna un objeto JSON con los datos solicitados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpiredAgreementsV2ResponseSyncOk'
        '202':
          description: >-
            Operación exitosa. Retorna un mensaje JSON informando el resultado
            de la operación solicitada. La respuesta completa, con el mismo
            esquema que la versión síncrona, se enviará al URL de callback
            proporcionado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpiredAgreementsV2ResponseAsync'
        '400':
          description: Solicitud incorrecta
        '401':
          description: No autorizado - Credenciales inválidas o faltantes
        '404':
          description: No encontrado - Recurso no disponible
        '500':
          description: Error en el servicio remoto :(
components:
  securitySchemes:
    JWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
    Api-Key:
      type: apiKey
      in: header
      name: x-api-key
  schemas:
    AuthCredential:
      title: AccountAuthCredential
      description: Valores necesarios para autenticar al usuario en el sitio web.
      properties:
        Username:
          description: >-
            Identificación del usuario con acceso a la cuenta en el sitio web
            (RUN, DNI).
          example: 11.111.111-1
          type: string
          maxLength: 12
          minLength: 1
        Password:
          description: Contraseña de la cuenta para el sitio web.
          example: wxyz1234!@#$
          type: string
          maxLength: 24
          minLength: 1
        LoginChoice:
          description: >-
            Especifica el método que se utilizará para iniciar sesión en el
            sitio web de TGR, donde `CU` significa "Clave Única", `TGR`
            significa "Clave TGR" y `SII` significa "Clave SII".
          example: CU
          type: string
          enum:
            - CU
            - TGR
            - SII
      required:
        - Username
        - Password
      type: object
    TokenResponseOk:
      additionalProperties: false
      description: >-
        Objeto con la respuesta desde el servicio OpenData, en modo Sincrónico,
        cuando `Status` es "OK"
      properties:
        OperationId:
          description: Identificador único de la operación.
          example: 6baf6c19-e485-463b-ae24-a821b025c8a4
          type: string
          maxLength: 36
        Status:
          description: >-
            Estado de la operación. `OK` significa que el servicio se ha
            ejecutado correctamente aunque no devuelva datos. `ERROR` indica que
            ha ocurrido algo que ha impedido la finalización con éxito del
            proceso.
          example: OK
          type: string
          enum:
            - OK
            - ERROR
        Data:
          description: >-
            Si la autenticación se ha realizado correctamente, incluye el
            'Account Link' para la cuenta.
          properties:
            AccountLink:
              description: Token generado para acceder a la cuenta del sitio web.
              example: >-
                dFyRCVYNM0aGb1LSR/0B8e+eSVr1Zf1xj9YHmMVoiZWk28XtWEyIxEbGXnr1EdvS+QBPzjweau7tbf5QlDv97IQ2jwfUB==
              type: string
          required:
            - AccountLink
          type: object
        AdditionalInformation:
          description: >-
            Este campo puede utilizarse para mostrar información relevante
            específica de la respuesta, por ejemplo indicando que el campo
            `Data` está incompleto.
          example: null
          type: string
          nullable: true
        Error:
          description: >-
            Objeto con los detalles del error, utilizado cuando `Status=ERROR`.
            Si `Status=OK` este campo será nulo. Puede leer una explicación
            completa de este objeto visitando [este
            enlace](https://docs.khipu.com/portal/en/errors/)
          example: null
          properties:
            Code:
              description: Código interno del sistema que identifica el error.
              example: E201
              type: string
            Type:
              description: >-
                Indica cómo tratar este código de error específico, en función
                del tipo de error.
              example: RETRY_IMMEDIATELY
              type: string
              enum:
                - RETRY_IMMEDIATELY
                - DO_NOT_RETRY
                - WAIT_4_HOURS_BEFORE_RETRY
                - RETRY_AFTER_NOTIFICATION
            Description:
              description: Descripción asociada al código de error.
              example: >-
                El servicio destino utilizado para la extracción de datos no se
                encuentra disponible.
              type: string
          required: []
          type: object
          nullable: true
        LifeSpan:
          description: '`null` en peticiones sincrónicas.'
          example: null
          type: string
          nullable: true
      required:
        - OperationId
        - Status
        - Data
        - AdditionalInformation
        - Error
        - LifeSpan
      type: object
    CurrentAgreementsV2Request:
      additionalProperties: false
      description: Objeto para realizar una solicitud al servicio OpenData.
      properties:
        RequestData:
          additionalProperties: false
          description: >-
            Información necesaria para conectarse a la cuenta del usuario en el
            sitio web y extraer datos. Los campos obligatorios indican los
            valores necesarios para identificar la cuenta deseada.
          properties:
            AccountCredential:
              deprecated: true
              description: >-
                Atención: El uso de este campo es obligatorio cuando se utiliza
                autenticación por Api Key.
              oneOf:
                - title: AccountLinkCredential
                  description: >-
                    Utilice este valor para llamar al servicio utilizando el
                    'Account Link' previamente generado.
                  properties:
                    AccountLink:
                      description: Token generado para acceder a la cuenta del sitio web.
                      example: >-
                        dFyRCVYNM0aGb1LSR/0B8e+eSVr1Zf1xj9YHmMVoiZWk28XtWEyIxEbGXnr1EdvS+QBPzjweau7tbf5QlDv97IQ2jwfUB==
                      type: string
                  required:
                    - AccountLink
                  type: object
                - title: AccountAuthCredential
                  description: >-
                    Valores necesarios para autenticar al usuario en el sitio
                    web.
                  properties:
                    Username:
                      description: >-
                        Identificación del usuario con acceso a la cuenta en el
                        sitio web (RUN, DNI).
                      example: 11.111.111-1
                      type: string
                      maxLength: 12
                      minLength: 1
                    Password:
                      description: Contraseña de la cuenta para el sitio web.
                      example: wxyz1234!@#$
                      type: string
                      maxLength: 24
                      minLength: 1
                    LoginChoice:
                      description: >-
                        Especifica el método que se utilizará para iniciar
                        sesión en el sitio web de TGR, donde `CU` significa
                        "Clave Única", `TGR` significa "Clave TGR" y `SII`
                        significa "Clave SII".
                      example: CU
                      type: string
                      enum:
                        - CU
                        - TGR
                        - SII
                  required:
                    - Username
                    - Password
                  type: object
          required: []
          type: object
        CallbackUrl:
          description: URL para enviar el mensaje de respuesta utilizando un método POST.
          example: https://my-api.my-business.com/api/open-data-response
          type: string
          maxLength: 255
      required:
        - RequestData
      type: object
    CurrentAgreementsV2ResponseSyncOk:
      additionalProperties: false
      description: >-
        Objeto con la respuesta desde el servicio OpenData, en modo Sincrónico,
        cuando `Status` es "OK"
      properties:
        OperationId:
          description: Identificador único de la operación.
          example: 6baf6c19-e485-463b-ae24-a821b025c8a4
          type: string
          maxLength: 36
        Status:
          description: >-
            Estado de la operación. `OK` significa que el servicio se ha
            ejecutado correctamente aunque no devuelva datos. `ERROR` indica que
            ha ocurrido algo que ha impedido la finalización con éxito del
            proceso.
          example: OK
          type: string
          enum:
            - OK
            - ERROR
        Data:
          additionalProperties: false
          type: object
          description: Contenedor de resoluciones de convenios vencidos.
          required:
            - Resolutions
          properties:
            Resolutions:
              type: array
              description: Contenedor de resoluciones.
              items:
                type: object
                required:
                  - Debts
                  - ExpirationCode
                  - Instalments
                  - NetBalance
                  - NumberOfDebts
                  - NumberOfInstalments
                  - PaymentType
                  - ResolutionDate
                  - ResolutionDetails
                  - ResolutionId
                properties:
                  ResolutionId:
                    type: integer
                    description: Número resolución.
                    example: 1000
                  ResolutionDate:
                    type: string
                    description: Fecha resolución.
                    example: '2017-07-22'
                  PaymentType:
                    type: string
                    description: Tipo pago.
                    example: CONVENIO CON CONDONACION
                  NumberOfDebts:
                    type: integer
                    description: Número de deudas.
                    example: 1
                  NumberOfInstalments:
                    type: integer
                    description: Número de cuotas.
                    example: 10
                  NetBalance:
                    type: object
                    description: Monto
                    required:
                      - Amount
                      - Currency
                    properties:
                      Amount:
                        type: integer
                        description: Saldo Neto Actual.
                        example: 1000
                      Currency:
                        type: string
                        description: Unidad monetaria.
                        example: CLP
                  ResolutionDetails:
                    type: object
                    description: Contenedor para detalles de la resolución.
                    required:
                      - DealType
                      - Debtor
                      - ExpiredInstalments
                      - InitialAmount
                      - InstalmentCashAmount
                      - PaidInstalments
                      - PaymentType
                      - PendingInstalments
                      - SetInstalmentAmount
                      - Stage
                    properties:
                      Debtor:
                        type: object
                        description: Información adicional sobre el contribuyente.
                        required:
                          - Identifier
                          - Name
                        properties:
                          Name:
                            type: string
                            description: Nombre Contribuyente.
                            example: KHIPU SPA
                          Identifier:
                            type: string
                            description: Rut Contribuyente.
                            example: 11.222.333-4
                      Stage:
                        type: string
                        description: Etapa actual.
                        example: CONVENIO ACTIVO
                      DealType:
                        type: string
                        description: Tipo de convenio.
                        example: Ley 20.780
                      InitialAmount:
                        type: object
                        description: Monto inicial.
                        required:
                          - Amount
                          - Currency
                        properties:
                          Amount:
                            type: integer
                            description: Monto expresado en unidades monetarias.
                            example: 20000
                          Currency:
                            type: string
                            description: Unidad monetaria.
                            example: CLP
                            enum:
                              - CLP
                              - UF
                      ExpiredInstalments:
                        type: integer
                        description: Número de cuotas vencidas.
                        example: 5
                      InstalmentCashAmount:
                        type: object
                        description: Monto cuota al contado.
                        required:
                          - Amount
                          - Currency
                        properties:
                          Amount:
                            type: integer
                            description: Monto expresado en unidades monetarias.
                            example: 20000
                          Currency:
                            type: string
                            description: Unidad monetaria.
                            example: CLP
                            enum:
                              - CLP
                              - UF
                      PaymentType:
                        type: string
                        description: Tipo de pago.
                        example: CONVENIO CON CONDONACION
                      PaidInstalments:
                        type: integer
                        description: Número de cuotas pagadas.
                        example: 5
                      PendingInstalments:
                        type: integer
                        description: Número Cuotas por vencer.
                        example: 5
                      SetInstalmentAmount:
                        type: object
                        description: Monto cuota fija.
                        required:
                          - Amount
                          - Currency
                        properties:
                          Amount:
                            type: integer
                            description: Monto expresado en unidades monetarias.
                            example: 20000
                          Currency:
                            type: string
                            description: Unidad monetaria.
                            example: CLP
                            enum:
                              - CLP
                              - UF
                  Debts:
                    type: array
                    description: Contenedor de deudas.
                    items:
                      type: object
                      required:
                        - Amount
                        - ExpireDate
                        - FineWaiverGained
                        - Form
                        - Identifier
                        - InterestWaiverGained
                        - Invoice
                      properties:
                        Identifier:
                          type: integer
                          description: Rut/Rol.
                          example: 1000
                        Form:
                          type: integer
                          description: Formulario.
                          example: 21
                        Invoice:
                          type: integer
                          description: Folio.
                          example: 100
                        ExpireDate:
                          type: string
                          description: Fecha Vencimiento.
                          example: '2017-07-22'
                        FineWaiverGained:
                          type: integer
                          description: Condonación otorgada Multas (%).
                          example: 50
                        InterestWaiverGained:
                          type: integer
                          description: Condonación otorgada Intereses (%).
                          example: 50
                        Amount:
                          type: object
                          description: Saldo.
                          required:
                            - Amount
                            - Currency
                          properties:
                            Amount:
                              type: integer
                              description: Monto expresado en unidades monetarias.
                              example: 20000
                            Currency:
                              type: string
                              description: Unidad monetaria.
                              example: CLP
                              enum:
                                - CLP
                                - UF
                  Instalments:
                    type: array
                    description: Contenedor para cuotas.
                    items:
                      type: object
                      required:
                        - Amount
                        - ExpireDate
                        - Number
                        - Status
                      properties:
                        Number:
                          type: integer
                          description: Número.
                          example: 1
                        ExpireDate:
                          type: string
                          description: Fecha de vencimiento.
                          example: '2017-07-22'
                        Amount:
                          type: object
                          description: Monto.
                          required:
                            - Amount
                            - Currency
                          properties:
                            Amount:
                              type: integer
                              description: Monto expresado en unidades monetarias.
                              example: 20000
                            Currency:
                              type: string
                              description: Unidad monetaria.
                              example: CLP
                              enum:
                                - CLP
                                - UF
                        Status:
                          type: string
                          description: Payment status.
                          example: Paid
                          enum:
                            - Paid
                            - Unpaid
          nullable: true
        AdditionalInformation:
          description: >-
            Este campo puede utilizarse para mostrar información relevante
            específica de la respuesta, por ejemplo indicando que el campo
            `Data` está incompleto.
          example: null
          type: string
          nullable: true
        Error:
          description: >-
            Objeto con los detalles del error, utilizado cuando `Status=ERROR`.
            Si `Status=OK` este campo será nulo. Puede leer una explicación
            completa de este objeto visitando [este
            enlace](https://docs.khipu.com/portal/en/errors/)
          example: null
          properties:
            Code:
              description: Código interno del sistema que identifica el error.
              example: E201
              type: string
            Type:
              description: >-
                Indica cómo tratar este código de error específico, en función
                del tipo de error.
              example: RETRY_IMMEDIATELY
              type: string
              enum:
                - RETRY_IMMEDIATELY
                - DO_NOT_RETRY
                - WAIT_4_HOURS_BEFORE_RETRY
                - RETRY_AFTER_NOTIFICATION
            Description:
              description: Descripción asociada al código de error.
              example: >-
                El servicio destino utilizado para la extracción de datos no se
                encuentra disponible.
              type: string
          required: []
          type: object
          nullable: true
        LifeSpan:
          description: '`null` en peticiones sincrónicas.'
          example: null
          type: string
          nullable: true
      required:
        - OperationId
        - Status
        - Data
        - AdditionalInformation
        - Error
        - LifeSpan
      type: object
    CurrentAgreementsV2ResponseAsync:
      type: object
      description: Objeto con la respuesta del servicio OpenData, en modo asíncrono.
      required:
        - OperationId
        - Status
        - Data
        - AdditionalInformation
        - Error
        - LifeSpan
      properties:
        OperationId:
          maxLength: 36
          type: string
          description: Identificador único de la operación.
          example: 6baf6c19-e485-463b-ae24-a821b025c8a4
        Status:
          type: string
          description: >-
            Estado de la operación. Al realizar solicitudes asíncronas, siempre
            devolverá `OK`.
          example: OK
        Data:
          type: object
          description: '`null` en solicitudes asíncronas.'
          example: null
        AdditionalInformation:
          type: string
          description: >-
            Mensaje de la operación, puede usarse para mostrar información
            adicional.
          example: Data will be sent to the callback URL.
        Error:
          type: object
          description: '`null` en solicitudes asíncronas.'
          example: null
        LifeSpan:
          type: string
          format: date-time
          description: >-
            Fecha máxima estimada de entrega para solicitudes asíncronas, en
            formato de fecha y hora ISO 8601, zona horaria UTC.
          example: 2017-07-22T00:00:00-0400
    ExpiredAgreementsV2Request:
      additionalProperties: false
      description: Objeto para realizar una solicitud al servicio OpenData.
      properties:
        RequestData:
          additionalProperties: false
          description: >-
            Información necesaria para conectarse a la cuenta del usuario en el
            sitio web y extraer datos. Los campos obligatorios indican los
            valores necesarios para identificar la cuenta deseada.
          properties:
            AccountCredential:
              deprecated: true
              description: >-
                Atención: El uso de este campo es obligatorio cuando se utiliza
                autenticación por Api Key.
              oneOf:
                - title: AccountLinkCredential
                  description: >-
                    Utilice este valor para llamar al servicio utilizando el
                    'Account Link' previamente generado.
                  properties:
                    AccountLink:
                      description: Token generado para acceder a la cuenta del sitio web.
                      example: >-
                        dFyRCVYNM0aGb1LSR/0B8e+eSVr1Zf1xj9YHmMVoiZWk28XtWEyIxEbGXnr1EdvS+QBPzjweau7tbf5QlDv97IQ2jwfUB==
                      type: string
                  required:
                    - AccountLink
                  type: object
                - title: AccountAuthCredential
                  description: >-
                    Valores necesarios para autenticar al usuario en el sitio
                    web.
                  properties:
                    Username:
                      description: >-
                        Identificación del usuario con acceso a la cuenta en el
                        sitio web (RUN, DNI).
                      example: 11.111.111-1
                      type: string
                      maxLength: 12
                      minLength: 1
                    Password:
                      description: Contraseña de la cuenta para el sitio web.
                      example: wxyz1234!@#$
                      type: string
                      maxLength: 24
                      minLength: 1
                    LoginChoice:
                      description: >-
                        Especifica el método que se utilizará para iniciar
                        sesión en el sitio web de TGR, donde `CU` significa
                        "Clave Única", `TGR` significa "Clave TGR" y `SII`
                        significa "Clave SII".
                      example: CU
                      type: string
                      enum:
                        - CU
                        - TGR
                        - SII
                  required:
                    - Username
                    - Password
                  type: object
          required: []
          type: object
        CallbackUrl:
          description: URL para enviar el mensaje de respuesta utilizando un método POST.
          example: https://my-api.my-business.com/api/open-data-response
          type: string
          maxLength: 255
      required:
        - RequestData
      type: object
    ExpiredAgreementsV2ResponseSyncOk:
      additionalProperties: false
      description: >-
        Objeto con la respuesta desde el servicio OpenData, en modo Sincrónico,
        cuando `Status` es "OK"
      properties:
        OperationId:
          description: Identificador único de la operación.
          example: 6baf6c19-e485-463b-ae24-a821b025c8a4
          type: string
          maxLength: 36
        Status:
          description: >-
            Estado de la operación. `OK` significa que el servicio se ha
            ejecutado correctamente aunque no devuelva datos. `ERROR` indica que
            ha ocurrido algo que ha impedido la finalización con éxito del
            proceso.
          example: OK
          type: string
          enum:
            - OK
            - ERROR
        Data:
          additionalProperties: false
          type: object
          description: Contenedor de resoluciones de convenios vencidos.
          required:
            - Resolutions
          properties:
            Resolutions:
              type: array
              description: Contenedor de resoluciones.
              items:
                type: object
                required:
                  - Debts
                  - ExpirationCode
                  - Instalments
                  - NetBalance
                  - NumberOfDebts
                  - NumberOfInstalments
                  - PaymentType
                  - ResolutionDate
                  - ResolutionDetails
                  - ResolutionId
                properties:
                  ResolutionId:
                    type: integer
                    description: Número resolución.
                    example: 1000
                  ResolutionDate:
                    type: string
                    description: Fecha resolución.
                    example: '2017-07-22'
                  PaymentType:
                    type: string
                    description: Tipo pago.
                    example: CONVENIO CON CONDONACION
                  NumberOfDebts:
                    type: integer
                    description: Número de deudas.
                    example: 1
                  NumberOfInstalments:
                    type: integer
                    description: Número de cuotas.
                    example: 10
                  NetBalance:
                    type: object
                    description: Monto
                    required:
                      - Amount
                      - Currency
                    properties:
                      Amount:
                        type: integer
                        description: Saldo Neto Actual.
                        example: 1000
                      Currency:
                        type: string
                        description: Unidad monetaria.
                        example: CLP
                  ResolutionDetails:
                    type: object
                    description: Contenedor para detalles de la resolución.
                    required:
                      - DealType
                      - Debtor
                      - ExpiredInstalments
                      - InitialAmount
                      - InstalmentCashAmount
                      - PaidInstalments
                      - PaymentType
                      - PendingInstalments
                      - SetInstalmentAmount
                      - Stage
                    properties:
                      Debtor:
                        type: object
                        description: Información adicional sobre el contribuyente.
                        required:
                          - Identifier
                          - Name
                        properties:
                          Name:
                            type: string
                            description: Nombre Contribuyente.
                            example: KHIPU SPA
                          Identifier:
                            type: string
                            description: Rut Contribuyente.
                            example: 11.222.333-4
                      Stage:
                        type: string
                        description: Etapa actual.
                        example: CONVENIO ACTIVO
                      DealType:
                        type: string
                        description: Tipo de convenio.
                        example: Ley 20.780
                      InitialAmount:
                        type: object
                        description: Monto inicial.
                        required:
                          - Amount
                          - Currency
                        properties:
                          Amount:
                            type: integer
                            description: Monto expresado en unidades monetarias.
                            example: 20000
                          Currency:
                            type: string
                            description: Unidad monetaria.
                            example: CLP
                            enum:
                              - CLP
                              - UF
                      ExpiredInstalments:
                        type: integer
                        description: Número de cuotas vencidas.
                        example: 5
                      InstalmentCashAmount:
                        type: object
                        description: Monto cuota al contado.
                        required:
                          - Amount
                          - Currency
                        properties:
                          Amount:
                            type: integer
                            description: Monto expresado en unidades monetarias.
                            example: 20000
                          Currency:
                            type: string
                            description: Unidad monetaria.
                            example: CLP
                            enum:
                              - CLP
                              - UF
                      PaymentType:
                        type: string
                        description: Tipo de pago.
                        example: CONVENIO CON CONDONACION
                      PaidInstalments:
                        type: integer
                        description: Número de cuotas pagadas.
                        example: 5
                      PendingInstalments:
                        type: integer
                        description: Número Cuotas por vencer.
                        example: 5
                      SetInstalmentAmount:
                        type: object
                        description: Monto cuota fija.
                        required:
                          - Amount
                          - Currency
                        properties:
                          Amount:
                            type: integer
                            description: Monto expresado en unidades monetarias.
                            example: 20000
                          Currency:
                            type: string
                            description: Unidad monetaria.
                            example: CLP
                            enum:
                              - CLP
                              - UF
                  ExpirationCode:
                    type: integer
                    description: Código de caducidad.
                    example: 8
                  Debts:
                    type: array
                    description: Contenedor de deudas.
                    items:
                      type: object
                      required:
                        - Amount
                        - ExpireDate
                        - FineWaiverGained
                        - Form
                        - Identifier
                        - InterestWaiverGained
                        - Invoice
                      properties:
                        Identifier:
                          type: integer
                          description: Rut/Rol.
                          example: 1000
                        Form:
                          type: integer
                          description: Formulario.
                          example: 21
                        Invoice:
                          type: integer
                          description: Folio.
                          example: 100
                        ExpireDate:
                          type: string
                          description: Fecha Vencimiento.
                          example: '2017-07-22'
                        FineWaiverGained:
                          type: integer
                          description: Condonación otorgada Multas (%).
                          example: 50
                        InterestWaiverGained:
                          type: integer
                          description: Condonación otorgada Intereses (%).
                          example: 50
                        Amount:
                          type: object
                          description: Saldo.
                          required:
                            - Amount
                            - Currency
                          properties:
                            Amount:
                              type: integer
                              description: Monto expresado en unidades monetarias.
                              example: 20000
                            Currency:
                              type: string
                              description: Unidad monetaria.
                              example: CLP
                              enum:
                                - CLP
                                - UF
                  Instalments:
                    type: array
                    description: Contenedor para cuotas.
                    items:
                      type: object
                      required:
                        - Amount
                        - ExpireDate
                        - Number
                        - Status
                      properties:
                        Number:
                          type: integer
                          description: Número.
                          example: 1
                        ExpireDate:
                          type: string
                          description: Fecha de vencimiento.
                          example: '2017-07-22'
                        Amount:
                          type: object
                          description: Monto.
                          required:
                            - Amount
                            - Currency
                          properties:
                            Amount:
                              type: integer
                              description: Monto expresado en unidades monetarias.
                              example: 20000
                            Currency:
                              type: string
                              description: Unidad monetaria.
                              example: CLP
                              enum:
                                - CLP
                                - UF
                        Status:
                          type: string
                          description: Payment status.
                          example: Paid
                          enum:
                            - Paid
                            - Unpaid
          nullable: true
        AdditionalInformation:
          description: >-
            Este campo puede utilizarse para mostrar información relevante
            específica de la respuesta, por ejemplo indicando que el campo
            `Data` está incompleto.
          example: null
          type: string
          nullable: true
        Error:
          description: >-
            Objeto con los detalles del error, utilizado cuando `Status=ERROR`.
            Si `Status=OK` este campo será nulo. Puede leer una explicación
            completa de este objeto visitando [este
            enlace](https://docs.khipu.com/portal/en/errors/)
          example: null
          properties:
            Code:
              description: Código interno del sistema que identifica el error.
              example: E201
              type: string
            Type:
              description: >-
                Indica cómo tratar este código de error específico, en función
                del tipo de error.
              example: RETRY_IMMEDIATELY
              type: string
              enum:
                - RETRY_IMMEDIATELY
                - DO_NOT_RETRY
                - WAIT_4_HOURS_BEFORE_RETRY
                - RETRY_AFTER_NOTIFICATION
            Description:
              description: Descripción asociada al código de error.
              example: >-
                El servicio destino utilizado para la extracción de datos no se
                encuentra disponible.
              type: string
          required: []
          type: object
          nullable: true
        LifeSpan:
          description: '`null` en peticiones sincrónicas.'
          example: null
          type: string
          nullable: true
      required:
        - OperationId
        - Status
        - Data
        - AdditionalInformation
        - Error
        - LifeSpan
      type: object
    ExpiredAgreementsV2ResponseAsync:
      type: object
      description: Objeto con la respuesta del servicio OpenData, en modo asíncrono.
      required:
        - OperationId
        - Status
        - Data
        - AdditionalInformation
        - Error
        - LifeSpan
      properties:
        OperationId:
          maxLength: 36
          type: string
          description: Identificador único de la operación.
          example: 6baf6c19-e485-463b-ae24-a821b025c8a4
        Status:
          type: string
          description: >-
            Estado de la operación. Al realizar solicitudes asíncronas, siempre
            devolverá `OK`.
          example: OK
        Data:
          type: object
          description: '`null` en solicitudes asíncronas.'
          example: null
        AdditionalInformation:
          type: string
          description: >-
            Mensaje de la operación, puede usarse para mostrar información
            adicional.
          example: Data will be sent to the callback URL.
        Error:
          type: object
          description: '`null` en solicitudes asíncronas.'
          example: null
        LifeSpan:
          type: string
          format: date-time
          description: >-
            Fecha máxima estimada de entrega para solicitudes asíncronas, en
            formato de fecha y hora ISO 8601, zona horaria UTC.
          example: 2017-07-22T00:00:00-0400
