openapi: 3.0.1
info:
  license:
    name: Khipu Open Data API
    url: https://khipu.com
  title: Poder Judicial
  description: ''
  version: v1.0
servers:
  - url: https://api.khipu.com
    description: Production
security:
  - JWT: []
  - Api-Key: []
paths:
  /v1/cl/services/pjud.cl/causes-per-legal-person:
    post:
      summary: Causes Per Legal Person
      description: >-
        Este método retorna las causas asociadas a una competencia y corte
        específicos para un Rol Único Tributario (RUT) chileno, utilizando el
        sitio web de **Poder Judicial**.


        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: CausesPerLegalPerson
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CausesPerLegalPersonRequest'
        required: true
      responses:
        '200':
          description: Operación exitosa. Retorna un objeto JSON con los datos solicitados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CausesPerLegalPersonResponseSyncOk'
        '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/CausesPerLegalPersonResponseAsync'
        '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/pjud.cl/causes-per-natural-person:
    post:
      summary: Causes Per Natural Person
      description: >-
        Este método retorna las causas asociadas a una competencia y corte
        específicos para un nombre de una persona, utilizando el sitio web de
        **Poder Judicial**.


        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: CausesPerNaturalPerson
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CausesPerNaturalPersonRequest'
        required: true
      responses:
        '200':
          description: Operación exitosa. Retorna un objeto JSON con los datos solicitados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CausesPerNaturalPersonResponseSyncOk'
        '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/CausesPerNaturalPersonResponseAsync'
        '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:
    CausesPerLegalPersonRequest:
      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:
            Username:
              description: Nombre de la persona a consultar.
              example: Juan Perez Perez
              format: name last-name last-name
              type: string
            Context:
              description: Competencia a consutar.
              example: Corte Suprema
              type: string
            Court:
              description: Corte a consutar.
              example: C.A. de Arica
              type: string
            Detail:
              description: >-
                Indicador binario que indica si se desea o no incluir el detalle
                de las causas.
              example: true
              enum:
                - true
                - false
              type: boolean
          required:
            - Username
            - Context
          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
    CausesPerLegalPersonResponseSyncOk:
      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: Causas en el contexto y el corte.
          required:
            - Causes
          properties:
            Causes:
              type: array
              items:
                type: object
                description: Causas en el contexto y el corte.
                required:
                  - AdministrativeStatus
                  - CauseState
                  - Court
                  - Date
                  - Labeled
                  - Litigant
                  - Procedure
                  - Resource
                  - Role
                  - Ruc
                  - Ubication
                  - UbicationDate
                properties:
                  Role:
                    type: string
                    description: Identificador único de la causa.
                    example: C-2673-2019
                  Court:
                    type: string
                    description: Tribunal asociado a la causa.
                    example: 1º Juzgado de Letras de Arica
                  Labeled:
                    type: string
                    description: Nombre de etiqueta para la causa.
                    example: EMPRESA NACIONAL DE TELECOMUNICACIONES/N.N.
                  Date:
                    type: string
                    description: Fecha de la causa.
                    example: '2019-11-27'
                  CauseState:
                    type: string
                    description: Estado de la causa.
                    example: Fallada-Terminada
                  Resource:
                    type: string
                    description: Tipo de recurso que indica la causa.
                    example: (Civil) Exhorto Internacional
                  Ubication:
                    type: string
                    description: >-
                      Referencia a la fecha en la causa para la localización de
                      la causa.
                    example: Archivo
                  AdministrativeStatus:
                    type: string
                    description: Situación administrativa de la causa.
                    example: Archivada
                  Procedure:
                    type: string
                    description: Tipo de procedimiento que indica la causa.
                    example: Cumplimiento laboral
                  Ruc:
                    type: string
                    description: Rol único de causa.
                    example: 23- 4-6665078-5
                  Litigant:
                    type: array
                    description: Contenedor para litigantes.
                    items:
                      type: object
                      required:
                        - DefenseAttorney
                        - Entity
                        - IncarcerationStatus
                        - Name
                        - Participant
                        - Rut
                        - Subject
                        - Type
                      properties:
                        Name:
                          type: string
                          description: Nombre de la persona.
                          example: JUAN PABLO PEREZ PEREZ
                        Participant:
                          type: string
                          description: Participante.
                          example: AB.DDO.
                        Rut:
                          type: string
                          description: >-
                            Rol Único Tributario. Identificador único e
                            inmutable utilizado para identificar a la persona.
                          example: 11.111.111-1
                        IncarcerationStatus:
                          type: string
                          description: Situación de encarcelamiento.
                          example: Libre
                        Entity:
                          type: string
                          description: Entidad.
                          example: JURIDICA
                        Type:
                          type: string
                          description: Tipo.
                          example: Denunciante
                        Subject:
                          type: string
                          description: Sujeto.
                          example: DDO.SO
          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
    CausesPerLegalPersonResponseAsync:
      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
    CausesPerNaturalPersonRequest:
      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:
            Username:
              description: Nombre de la persona a consultar.
              example: Juan Perez Perez
              format: name last-name last-name
              type: string
            Context:
              description: Competencia a consutar.
              example: Corte Suprema
              type: string
            Court:
              description: Corte a consutar.
              example: C.A. de Arica
              type: string
            Detail:
              description: >-
                Indicador binario que indica si se desea o no incluir el detalle
                de las causas.
              example: true
              enum:
                - true
                - false
              type: boolean
          required:
            - Username
            - Context
          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
    CausesPerNaturalPersonResponseSyncOk:
      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: Causas en el contexto y el corte.
          required:
            - Causes
          properties:
            Causes:
              type: array
              items:
                type: object
                description: Causas en el contexto y el corte.
                required:
                  - AdministrativeStatus
                  - CauseState
                  - Court
                  - Date
                  - Labeled
                  - Litigant
                  - Procedure
                  - Resource
                  - Role
                  - Ruc
                  - Ubication
                  - UbicationDate
                properties:
                  Role:
                    type: string
                    description: Identificador único de la causa.
                    example: C-2673-2019
                  Court:
                    type: string
                    description: Tribunal asociado a la causa.
                    example: 1º Juzgado de Letras de Arica
                  Labeled:
                    type: string
                    description: Nombre de etiqueta para la causa.
                    example: EMPRESA NACIONAL DE TELECOMUNICACIONES/N.N.
                  Date:
                    type: string
                    description: Fecha de la causa.
                    example: '2019-11-27'
                  CauseState:
                    type: string
                    description: Estado de la causa.
                    example: Fallada-Terminada
                  Resource:
                    type: string
                    description: Tipo de recurso que indica la causa.
                    example: (Civil) Exhorto Internacional
                  Ubication:
                    type: string
                    description: >-
                      Referencia a la fecha en la causa para la localización de
                      la causa.
                    example: Archivo
                  AdministrativeStatus:
                    type: string
                    description: Situación administrativa de la causa.
                    example: Archivada
                  Procedure:
                    type: string
                    description: Tipo de procedimiento que indica la causa.
                    example: Cumplimiento laboral
                  Ruc:
                    type: string
                    description: Rol único de causa.
                    example: 23- 4-6665078-5
                  Litigant:
                    type: array
                    description: Contenedor para litigantes.
                    items:
                      type: object
                      required:
                        - DefenseAttorney
                        - Entity
                        - IncarcerationStatus
                        - Name
                        - Participant
                        - Rut
                        - Subject
                        - Type
                      properties:
                        Name:
                          type: string
                          description: Nombre de la persona.
                          example: JUAN PABLO PEREZ PEREZ
                        Participant:
                          type: string
                          description: Participante.
                          example: AB.DDO.
                        Rut:
                          type: string
                          description: >-
                            Rol Único Tributario. Identificador único e
                            inmutable utilizado para identificar a la persona.
                          example: 11.111.111-1
                        IncarcerationStatus:
                          type: string
                          description: Situación de encarcelamiento.
                          example: Libre
                        Entity:
                          type: string
                          description: Entidad.
                          example: JURIDICA
                        Type:
                          type: string
                          description: Tipo.
                          example: Denunciante
                        Subject:
                          type: string
                          description: Sujeto.
                          example: DDO.SO
          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
    CausesPerNaturalPersonResponseAsync:
      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
