openapi: 3.0.1
info:
  license:
    name: Khipu Open Data API
    url: https://khipu.com
  title: Banco BICE
  description: ''
  version: v1.0
servers:
  - url: https://api.khipu.com
    description: Production
security:
  - JWT: []
  - Api-Key: []
paths:
  /v1/cl/banking/business/bice.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 **Banco BICE -
        Empresas** 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/banking/business/bice.cl/current/balances:
    post:
      summary: Current Balances
      description: >-
        Este método se conecta a la cuenta especificada por el usuario en
        **Banco BICE - Empresas** y retorna los saldos actuales de la cuenta
        (también conocido como "Saldo en línea").


        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: CurrentBalances
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CurrentBalancesRequest'
        required: true
      responses:
        '200':
          description: Operación exitosa. Retorna un objeto JSON con los datos solicitados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentBalancesResponseSyncOk'
        '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/CurrentBalancesResponseAsync'
        '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/banking/business/bice.cl/latest/transactions:
    post:
      summary: Latest Transactions
      description: >-
        Este método se conecta a la cuenta especificada por el usuario en
        **Banco BICE - Empresas** y retorna las transacciones más recientes con
        el límite determinado por el banco (también conocido como "Últimos
        movimientos").


        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: LatestTransactions
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LatestTransactionsRequest'
        required: true
      responses:
        '200':
          description: Operación exitosa. Retorna un objeto JSON con los datos solicitados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LatestTransactionsResponseSyncOk'
        '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/LatestTransactionsResponseAsync'
        '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/banking/business/bice.cl/statements/transactions:
    post:
      summary: Statements Transactions
      description: >-
        Este método se conecta a la cuenta especificada por el usuario en
        **Banco BICE - Empresas** y retorna las transacciones registradas en los
        estados de cuenta emitidos por el banco dentro del rango de fechas
        especificado (también conocido como "Consulta de Movimientos").


        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: StatementsTransactions
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatementsTransactionsRequest'
        required: true
      responses:
        '200':
          description: Operación exitosa. Retorna un objeto JSON con los datos solicitados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatementsTransactionsResponseSyncOk'
        '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/StatementsTransactionsResponseAsync'
        '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
        EnterpriseName:
          description: >-
            Nombre de la empresa. Este campo es obligatorio si su usuario tiene
            más de una representación. Si su usuario sólo tiene 1
            representación, el sitio web la selecciona automáticamente.
          example: Company SA
          type: string
          maxLength: 40
          minLength: 1
      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
    CurrentBalancesRequest:
      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:
            AccountNumber:
              description: Número de cuenta bancaria.
              example: '11887755'
              type: string
              maxLength: 20
              minLength: 1
            Currency:
              description: >-
                Identificación de la moneda en la que se mantiene la cuenta.
                Utilización: La moneda sólo debe utilizarse en caso de que sea
                necesaria para identificar la cuenta.
              example: CLP
              type: string
              pattern: ^[A-Z]{3,3}$
              maxLength: 3
            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
                    EnterpriseName:
                      description: >-
                        Nombre de la empresa. Este campo es obligatorio si su
                        usuario tiene más de una representación. Si su usuario
                        sólo tiene 1 representación, el sitio web la selecciona
                        automáticamente.
                      example: Company SA
                      type: string
                      maxLength: 40
                      minLength: 1
                  required:
                    - Username
                    - Password
                  type: object
          required:
            - AccountNumber
          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
    CurrentBalancesResponseSyncOk:
      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:
          type: object
          additionalProperties: false
          description: Contenedor de saldos.
          required:
            - Balance
          properties:
            Balance:
              type: array
              minItems: 0
              description: >-
                Conjunto de elementos utilizados para definir los detalles de
                balance. Puede ser un arreglo vacío.
              items:
                type: object
                additionalProperties: false
                required:
                  - AccountId
                  - CreditDebitIndicator
                  - DateTime
                  - Type
                  - Amount
                properties:
                  AccountId:
                    maxLength: 40
                    type: string
                    description: >-
                      Identificador único e inmutable utilizado para identificar
                      el recurso de la cuenta.
                    example: '873458'
                  CreditDebitIndicator:
                    type: string
                    enum:
                      - Credit
                      - Debit
                    description: Indica si el balance es crédito o débito.
                    example: Credit
                  DateTime:
                    type: string
                    format: date-time
                    description: Indica la fecha (y la hora) del saldo.
                    example: 2017-07-21T17:32:28-0400
                  Type:
                    type: string
                    enum:
                      - ClosingAvailable
                      - ClosingBooked
                      - Withheld
                    description: Tipo de saldo.
                    example: ClosingAvailable
                  Amount:
                    type: object
                    description: Cantidad de dinero reportado.
                    required:
                      - Amount
                      - Currency
                    properties:
                      Amount:
                        type: number
                        format: float
                        description: >-
                          Número de unidades monetarias especificadas en una
                          moneda activa en la que la unidad monetaria es
                          explícita y conforme con la norma ISO 4217.
                        example: 10000
                      Currency:
                        type: string
                        pattern: ^[A-Z]{3,3}$
                        description: >-
                          Código asignado a una moneda por una Agencia de
                          Mantenimiento con arreglo a un sistema de
                          identificación internacional, tal como se describe en
                          la última edición de la norma internacional ISO 4217
                          'Códigos para la representación de monedas y fondos'.
                        example: CLP
          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
    CurrentBalancesResponseAsync:
      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
    LatestTransactionsRequest:
      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:
            AccountNumber:
              description: Número de cuenta bancaria.
              example: '11887755'
              type: string
              maxLength: 20
              minLength: 1
            Currency:
              description: >-
                Identificación de la moneda en la que se mantiene la cuenta.
                Utilización: La moneda sólo debe utilizarse en caso de que sea
                necesaria para identificar la cuenta.
              example: CLP
              type: string
              pattern: ^[A-Z]{3,3}$
              maxLength: 3
            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
                    EnterpriseName:
                      description: >-
                        Nombre de la empresa. Este campo es obligatorio si su
                        usuario tiene más de una representación. Si su usuario
                        sólo tiene 1 representación, el sitio web la selecciona
                        automáticamente.
                      example: Company SA
                      type: string
                      maxLength: 40
                      minLength: 1
                  required:
                    - Username
                    - Password
                  type: object
          required:
            - AccountNumber
          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
    LatestTransactionsResponseSyncOk:
      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:
          type: object
          additionalProperties: false
          description: Contenedor de transacciones.
          required:
            - Transaction
          properties:
            Transaction:
              type: array
              minItems: 0
              description: >-
                Proporciona más detalles sobre las transacciones. Puede ser un
                arreglo vacío.
              items:
                type: object
                additionalProperties: false
                required:
                  - AccountId
                  - BookingDateTime
                  - CreditDebitIndicator
                  - Status
                  - TransactionId
                  - Amount
                properties:
                  AccountId:
                    type: string
                    maxLength: 40
                    description: >-
                      Identificador único e inmutable utilizado para identificar
                      el recurso de la cuenta.
                    example: '873458'
                  BookingDateTime:
                    type: string
                    format: date-time
                    description: >-
                      Fecha y hora en que se contabiliza una transacción de una
                      cuenta en los libros del administrador de cuentas (también
                      conocido como 'Fecha contable'). Utilización: La fecha de
                      contabilización es la fecha de contabilización prevista, a
                      menos que el estado sea 'Booked', en cuyo caso es la fecha
                      de contabilización real.
                    example: 2017-07-22T00:00:00-0400
                  CreditDebitIndicator:
                    type: string
                    enum:
                      - Credit
                      - Debit
                    description: >-
                      Indica si la transacción es una entrada de crédito o de
                      débito.
                    example: Credit
                  Status:
                    type: string
                    enum:
                      - Booked
                      - Pending
                      - Rejected
                    description: >-
                      Estado de la transacción en los libros del administrador
                      de cuentas.
                    example: Booked
                  TransactionId:
                    maxLength: 210
                    type: string
                    description: >-
                      Identificador único de la transacción. Este identificador
                      es único para la consulta actual.
                    example: c830d0c9a0904ea6badbaf8e25ff6e87
                  TransactionInformation:
                    maxLength: 500
                    type: string
                    description: >-
                      Mayor información de la transacción. Se trata de la glosa
                      de la transacción, que es un texto no estructurado.
                    example: PAGO DE CUENTAS
                  Amount:
                    type: object
                    description: Cantidad de dinero de la transacción.
                    required:
                      - Amount
                      - Currency
                    properties:
                      Amount:
                        type: number
                        format: float
                        description: >-
                          Número de unidades monetarias especificadas en una
                          moneda activa en la que la unidad monetaria es
                          explícita y conforme con la norma ISO 4217.
                        example: 10000
                      Currency:
                        type: string
                        pattern: ^[A-Z]{3,3}$
                        description: >-
                          Código asignado a una moneda por una Agencia de
                          Mantenimiento con arreglo a un sistema de
                          identificación internacional, tal como se describe en
                          la última edición de la norma internacional ISO 4217
                          'Códigos para la representación de monedas y fondos'.
                        example: CLP
                  BankTransactionCode:
                    type: object
                    description: >-
                      Conjunto de elementos utilizados para identificar
                      plenamente el tipo de transacción subyacente.
                    required:
                      - Code
                      - SubCode
                    properties:
                      Code:
                        type: string
                        pattern: ^[A-Z]{4,4}$
                        description: Especifica la familia dentro de un dominio.
                        example: RCDT
                      SubCode:
                        type: string
                        pattern: ^[A-Z]{4,4}$
                        description: >-
                          Especifica la familia de subproductos dentro de una
                          familia específica.
                        example: DMCT
          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
    LatestTransactionsResponseAsync:
      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
    StatementsTransactionsRequest:
      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:
            AccountNumber:
              description: Número de cuenta bancaria.
              example: '11887755'
              type: string
              maxLength: 20
              minLength: 1
            BookingDateStart:
              description: >-
                Fecha de inicio en formato ISO 8601 (YYYY-MM) utilizada para
                obtener las transacciones.
              example: 2022-07
              type: string
              pattern: ^(19[7-9][0-9]|20([0-1][0-9]|2[0-4]))-(0[1-9]|1[0-2])$
            BookingDateEnd:
              description: >-
                Fecha final en formato ISO 8601 (YYYY-MM) utilizada para obtener
                las transacciones.
              example: 2022-07
              type: string
              pattern: ^(19[7-9][0-9]|20([0-1][0-9]|2[0-4]))-(0[1-9]|1[0-2])$
            Currency:
              description: >-
                Identificación de la moneda en la que se mantiene la cuenta.
                Utilización: La moneda sólo debe utilizarse en caso de que sea
                necesaria para identificar la cuenta.
              example: CLP
              type: string
              pattern: ^[A-Z]{3,3}$
              maxLength: 3
            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
                    EnterpriseName:
                      description: >-
                        Nombre de la empresa. Este campo es obligatorio si su
                        usuario tiene más de una representación. Si su usuario
                        sólo tiene 1 representación, el sitio web la selecciona
                        automáticamente.
                      example: Company SA
                      type: string
                      maxLength: 40
                      minLength: 1
                  required:
                    - Username
                    - Password
                  type: object
          required:
            - AccountNumber
            - BookingDateStart
            - BookingDateEnd
          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
    StatementsTransactionsResponseSyncOk:
      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:
          type: object
          additionalProperties: false
          description: Contenedor de transacciones.
          required:
            - Transaction
          properties:
            Transaction:
              type: array
              minItems: 0
              description: >-
                Proporciona más detalles sobre las transacciones. Puede ser un
                arreglo vacío.
              items:
                type: object
                additionalProperties: false
                required:
                  - AccountId
                  - BookingDateTime
                  - CreditDebitIndicator
                  - Status
                  - TransactionId
                  - Amount
                properties:
                  AccountId:
                    type: string
                    maxLength: 40
                    description: >-
                      Identificador único e inmutable utilizado para identificar
                      el recurso de la cuenta.
                    example: '873458'
                  BookingDateTime:
                    type: string
                    format: date-time
                    description: >-
                      Fecha y hora en que se contabiliza una transacción de una
                      cuenta en los libros del administrador de cuentas (también
                      conocido como 'Fecha contable'). Utilización: La fecha de
                      contabilización es la fecha de contabilización prevista, a
                      menos que el estado sea 'Booked', en cuyo caso es la fecha
                      de contabilización real.
                    example: 2017-07-22T00:00:00-0400
                  CreditDebitIndicator:
                    type: string
                    enum:
                      - Credit
                      - Debit
                    description: >-
                      Indica si la transacción es una entrada de crédito o de
                      débito.
                    example: Credit
                  Status:
                    type: string
                    enum:
                      - Booked
                      - Pending
                      - Rejected
                    description: >-
                      Estado de la transacción en los libros del administrador
                      de cuentas.
                    example: Booked
                  TransactionId:
                    maxLength: 210
                    type: string
                    description: >-
                      Identificador único de la transacción. Este identificador
                      es único para la consulta actual.
                    example: c830d0c9a0904ea6badbaf8e25ff6e87
                  TransactionInformation:
                    maxLength: 500
                    type: string
                    description: >-
                      Mayor información de la transacción. Se trata de la glosa
                      de la transacción, que es un texto no estructurado.
                    example: PAGO DE CUENTAS
                  Amount:
                    type: object
                    description: Cantidad de dinero de la transacción.
                    required:
                      - Amount
                      - Currency
                    properties:
                      Amount:
                        type: number
                        format: float
                        description: >-
                          Número de unidades monetarias especificadas en una
                          moneda activa en la que la unidad monetaria es
                          explícita y conforme con la norma ISO 4217.
                        example: 10000
                      Currency:
                        type: string
                        pattern: ^[A-Z]{3,3}$
                        description: >-
                          Código asignado a una moneda por una Agencia de
                          Mantenimiento con arreglo a un sistema de
                          identificación internacional, tal como se describe en
                          la última edición de la norma internacional ISO 4217
                          'Códigos para la representación de monedas y fondos'.
                        example: CLP
                  BankTransactionCode:
                    type: object
                    description: >-
                      Conjunto de elementos utilizados para identificar
                      plenamente el tipo de transacción subyacente.
                    required:
                      - Code
                      - SubCode
                    properties:
                      Code:
                        type: string
                        pattern: ^[A-Z]{4,4}$
                        description: Especifica la familia dentro de un dominio.
                        example: RCDT
                      SubCode:
                        type: string
                        pattern: ^[A-Z]{4,4}$
                        description: >-
                          Especifica la familia de subproductos dentro de una
                          familia específica.
                        example: DMCT
          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
    StatementsTransactionsResponseAsync:
      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
