swagger: '2.0'
info:
  description: "<p> Es una solución de filtrado contra listas de cumplimiento para Prevención de Lavado de Dinero y Financiamiento al Terrorismo (PLD/FT).<br><br><img src='https://developer.circulodecredito.com.mx/sites/default/files/2020-10/circulo_de_credito-apihub.png'  width='240'/></p><br/>"
  version: 2.0.0
  title: 'PLD Check Personas Físicas - Simulación'
  termsOfService: 'https://developer.circulodecredito.com.mx/legal'
  contact:
    email: 'api@circulodecredito.com.mx'
  license:
    name: 'Derechos reservados Circulo de Crédito 2020'
    url: 'https://developer.circulodecredito.com.mx/aviso-de-privacidad'
host: 'services.circulodecredito.com.mx'
basePath: '/'
tags:
  - name: 'PLD'
    description: 'Consulta a una persona en las listas de Personas Políticamente Expuestas y Personas vinculadas a Lavado de Dinero.'
    externalDocs:
      description: 'Portal de desarrolladores'
      url: 'https://developer.circulodecredito.com.mx/productos/PLD-check'
schemes:
  - 'https'
paths:
  '/sandbox/v2/pld':
    post:
      summary: 'Consulta a una persona en las listas de Personas Políticamente Expuestas y Personas vinculadas a Lavado de Dinero.'
      tags:
        - 'PLD'
      operationId: 'getPLD'
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      parameters:
        - name: 'x-api-key'
          in: 'header'
          required: true
          type: 'string'
          description: 'ConsumerKey obtenido desde el portal de desarrolladores dentro de cada aplicación.'
        - in: 'body'
          name: 'body'
          description: ''
          required: true
          schema:
            $ref: '#/definitions/Peticion'
      responses:
        '200':
          description: 'OK'
          schema:
            $ref: '#/definitions/Respuesta'
          examples:
            application/json:
              folioConsulta: '12244332'
              personas:
                - porcentaje: 100
                  nombre: 'JUAN'
                  apellidoPaterno: 'PRUEBA'
                  apellidoMaterno: 'CUATRO'
                  RFC: 'PUCJ800101NK9'
                  CURP: 'PUCJ800104HDFRTN03'
                  fechaNacimiento: '1980-01-04'
                  lista: 'VENC'
                  estatus: '1 AÑOS'
                  dependencia: 'SECRETARIA DE GOBERNACION'
                  puesto: 'SECRETARIO'
                  dispocisionesId: '1111'
                  CURPOk: 1
                  nombreCompleto: 'JAVIER PRUEBA CUATRO'
                  apellidos: 'PRUEBA CUATRO'
                  entidad: 'CIUDAD DE MÉXICO'
                  sexo: 'MASCULINO'
                  area: 'OFICINA DEL C. SECRETARIO'
                  tipoPersona: 'PF'
                - porcentaje: 95
                  nombre: 'JUAN'
                  apellidoPaterno: 'PRUEBA'
                  apellidoMaterno: 'CUATRO'
                  RFC: 'DARA691207T56'
                  CURP: 'DARA691207HCMLNS07'
                  fechaNacimiento: '1969-12-07'
                  lista: 'VENC'
                  estatus: '11 AÑOS'
                  dependencia: 'CANDIDATOS'
                  puesto: 'DIPUTADO PROPIETARIO'
                  dispocisionesId: '1111'
                  CURPOk: 1
                  nombreCompleto: 'JAVIER PRUEBA CUATRO'
                  apellidos: 'PRUEBA CUATRO'
                  entidad: 'NUEVO LEON'
                  sexo: 'MASCULINO'
                  area: 'CANDIDATOS 2003-2006'
                  tipoPersona: 'PF'
        '400':
          description: 'Bad Request'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '400.1'
                  mensaje: 'Falta propiedad requerida: nombres'
                - codigo: '400.2'
                  mensaje: 'Falta propiedad requerida: apellidoPaterno'
                - codigo: '400.3'
                  mensaje: 'Falta propiedad requerida: apellidoMaterno'
        '401':
          description: 'Unauthorized'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: 401.1'
                  mensaje: 'Acceso no autorizado, x-api-key inválida.'
                - codigo: '401.2'
                  mensaje: 'Acceso no autorizado.'
                - codigo: '401.3'
                  mensaje: 'Acceso no autorizado, no tiene el producto asociado.'
                - codigo: '401.4'
                  mensaje: 'Acceso no autorizado, no tiene acceso al recurso.'
        '403':
          description: 'Forbidden'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '403.1'
                  mensaje: 'No se pudo autenticar, x-signature inválida.'
        '404':
          description: 'Not Found'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              folioConsulta: '12244332'
              errores:
                - codigo: '404.1'
                  mensaje: 'No se encontró a la persona.'
        '429':
          description: 'Too Many Requests'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '429.1'
                  mensaje: 'Se han enviado demasiadas solicitudes. Se debe esperar antes de realizar una nueva solicitud.'
        '500':
          description: 'Internal Server Error'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '500.1'
                  mensaje: 'Ocurrio un problema, inténtelo nuevamente más tarde.'
        '503':
          description: 'Service Unavailable'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: "503.1"
                  mensaje: "Servicio no disponible."
definitions:
  Peticion:
    title: 'Peticion'
    description: 'Nombre completo de la persona a consultar.'
    type: 'object'
    required:
      - 'nombres'
      - 'apellidoPaterno'
      - 'apellidoMaterno'
    properties:
      nombres:
        description: 'Nombre completo de la persona.'
        type: 'string'
        minLength: 0
        maxLength: 50
        example: 'JUAN'
      apellidoPaterno:
        description: 'Apellido paterno de la persona.'
        type: 'string'
        minLength: 0
        maxLength: 30
        example: 'PRUEBA'
      apellidoMaterno:
        description: 'Apellido materno de la persona.'
        type: 'string'
        minLength: 0
        maxLength: 30
        example: 'CUATRO'
    example:
      nombres: 'JUAN'
      apellidoPaterno: 'PRUEBA'
      apellidoMaterno: 'CUATRO'
  Respuesta:
    title: 'Respuesta'
    type: 'object'
    required:
      - 'personas'
    properties:
      folioConsulta:
        type: 'string'
        description: 'Número consecutivo único del registro, asignado por Circulo de Crédito'
        example: "12244332"
      personas:
        description: 'Lista de personas encontradas.'
        type: 'array'
        items:
          $ref: '#/definitions/Persona'
  Persona:
    type: 'object'
    properties:
      porcentaje:
        description: 'Nivel de coincidencia entre los parámetros de entrada y los resultados obtenidos.'
        type: 'integer'
        example: 98
      nombre:
        type: 'string'
        description: 'Nombre(s) de la persona.'
        minLength: 0
        maxLength: 30
        example: 'JAVIER'
      apellidoPaterno:
        type: 'string'
        description: 'Apellido paterno de la persona.'
        minLength: 0
        maxLength: 30
        example: 'PRUEBA'
      apellidoMaterno:
        type: 'string'
        description: 'Apellido materno de la persona.'
        minLength: 0
        maxLength: 30
        example: 'CUATRO'
      RFC:
        type: 'string'
        description: 'RFC con homoclave de la persona.'
        pattern: >-
          ^([A-ZÑ,&amp;]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1]))([A-Z\\d]{3})?$
        example: 'SAZR010101Q23'
      CURP:
        type: string
        description: 'CURP de la persona, emitida por RENAPO.'
        pattern: >-
          ^([A-Z][AEIOUX][A-Z]{2}\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])[HM](?:AS|B[CS]|C[CLMSH]|D[FG]|G[TR]|HG|JC|M[CNS]|N[ETL]|OC|PL|Q[TR]|S[PLR]|T[CSL]|VZ|YN|ZS)[B-DF-HJ-NP-TV-Z]{3}[A-Z\\d])(\\d)$
        example: 'SAZR010101HCMLNS09'
      fechaNacimiento:
        type: 'string'
        description: 'Fecha de nacimiento de la persona (formato por defecto yyyy-MM-dd).'
        example: '2001-01-01'
      lista:
        type: 'string'
        description: 'Lista en la que se encuentra.'
        minLength: 0
        maxLength: 30
        example: 'SAT69'
      estatus:
        type: 'string'
        description: 'Información adicional del registro.'
        minLength: 0
        maxLength: 30
        example: 'ACTIVO'
      dependencia:
        type: 'string'
        description: 'Dependencia en la que labora o laboró.'
        minLength: 0
        maxLength: 30
        example: 'CAMARA DE SENADORES'
      puesto:
        type: 'string'
        description: 'Cargo que desempeña o desempeñó el sancionado.'
        example: 'SENADOR'
      dispocisionesId:
        type: 'string'
        description: 'Referencia a disposiciones de la SHCP. Solo se utiliza en la lista PEP.'
        minLength: 0
        maxLength: 30
        example: '532'
      CURPOk:
        type: 'integer'
        format: 'int32'
        description: 'Estatus CURP validada (0-No, 1-Si).'
        example: 1
      parentescoId:
        type: 'string'
        description: 'Número de identificación con el que esta persona tiene parentesco.'
      parentesco:
        type: 'string'
        description: 'Tipo de parentesco con la persona relacionada.'
      razonSocial:
        type: 'string'
        description: 'Razón social (física o moral).'
        minLength: 5
        maxLength: 6
        example: 'MORAL'
      RFCMoral:
        type: 'string'
        description: 'RFC en caso de ser persona moral.'
        pattern: >-
          ^([A-ZÑ,&amp;]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1]))([A-Z\\d]{3})?$
        example: 'REA010101S28'
      ISSSTE:
        type: 'string'
        description: 'Número de Seguridad Social asignado por el ISSSTE.'
      IMSS:
        type: 'string'
        description: 'Número de Seguridad Social asignado por el IMSS.'
      ingresos:
        type: 'number'
        description: 'Ingreso reportado por la dependencia en la que labora.'
        example: 107283.76
      nombreCompleto:
        type: 'string'
        description: 'Nombre completo de la persona.'
        minLength: 0
        maxLength: 90
        example: 'JAVIER PRUEBA CUATRO'
      apellidos:
        type: 'string'
        description: 'Apellidos (materno y paterno) de la persona.'
        minLength: 0
        maxLength: 60
        example: 'PRUEBA CUATRO'
      entidad:
        type: 'string'
        description: 'Entidad federativa donde se ubica la dependencia.'
        example: 'HIDALGO'
      sexo:
        type: 'string'
        description: 'Sexo de la persona.'
        minLength: 0
        maxLength: 10
        example: 'MASCULINO'
      area:
        type: 'string'
        description: 'Área en la que labora la persona.'
        minLength: 0
        maxLength: 60
        example: 'GUBERNATURA'
      periodo:
        type: 'string'
        description: 'Periodo en el que desempeñó funciones.'
        minLength: 0
      expediente:
        type: 'string'
        description: ''
      causaIrregularidad:
        type: 'string'
        description: 'Motivo de la sanción al funcionario.'
      fechaCargoInicio:
        type: 'string'
        description: 'Fecha en que la persona inició labores en el cargo (formato por defecto yyyy-MM-dd).'
        example: '2001-01-01'
      fechaCargoFin:
        type: 'string'
        description: 'Fecha en que la persona terminó labores en el cargo (formato por defecto yyyy-MM-dd).'
        example: '2010-01-01'
      duracion:
        type: 'string'
        description: 'Tiempo que se determinó como sanción.'
      monto:
        type: 'number'
        description: 'Monto de la sanción.'
      autoridadSancion:
        type: 'string'
        description: 'Órgano que dicta la sanción.'
      tipoPersona:
        type: 'string'
        description: 'Tipo de persona (física o moral).'
        example: 'PF'
  Errores:
    type: 'object'
    description: 'Si existen errores, se listarán.'
    properties:
      folioConsulta:
        type: 'string'
        description: 'Número consecutivo único del registro, asignado por Circulo de Crédito'
        example: "12244332"
      errores:
        type: 'array'
        items:
          $ref: '#/definitions/Error'
    title: 'Errores'
  Error:
    type: 'object'
    properties:
      codigo:
        type: 'string'
        example: 'VA003'
        description: 'Código de error.'
      mensaje:
        type: 'string'
        example: 'Título de error, El campo "{Campo}" es requerido.'
        description: 'Mensaje de error.'
    title: 'Error'
    description: 'error'