swagger: '2.0'  
info:
  description: "<p>Es una solución de filtrado contra listas públicas 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' height='40' width='220'/></p><br/>"
  version: 1.0.1
  title: PLD Check Personas Morales
  termsOfService: 'https://developer.circulodecredito.com.mx/legal'
  contact:  
    email: api@circulodecredito.com.mx
  license:  
    name: 'Derechos Reservados Círculo de Crédito, 2020'  
    url: 'http://www.circulodecredito.com.mx'     
host: services.circulodecredito.com.mx
basePath: /sandbox
tags:  
  - name: PLD Personas Morales Simulación
    description: 'Consulta a una persona en las listas públicas 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-pm'  
        
schemes:  
  - https  
    
paths:  
  /v1/pld-pm:  
    post:  
      summary: 'Consulta a una persona en las listas pública de Personas Morales Políticamente Expuestas y Personas Morales vinculadas a Lavado de Dinero.'  
      tags:  
        - PLD Personas Morales Simulación
      operationId: getPLDPm
      consumes:  
        - application/json
      produces:  
        - '*/*'  
      parameters:
        - name: x-api-key
          in: header
          required: true
          type: string
          description: 'ConsumerKey obtenido desde el portal de desarrolladores dentro de cada aplicación.'
          default: ''
        - in: body  
          name: body  
          description: ''
          required: true  
          schema:  
            $ref: '#/definitions/Peticion'  
      responses:  
        '200':  
          description: OK
          schema:
            $ref: '#/definitions/Respuesta' 
          examples:
            response:
              personas:
                - porcentaje: 100
                  nombre: 'JAVIER'
                  apellidoPaterno: 'DAVILA'
                  apellidoMaterno: 'RODRIGUEZ'
                  rfc: 'DARJ640805Q23'
                  curp: 'DARJ640805HCMLNS09'
                  fechaNacimiento: '1964-08-05'
                  lista: 'VENC'
                  estatus: '1 AÑOS'
                  dependencia: 'SECRETARIA DE GOBERNACION'
                  puesto: 'SECRETARIO'
                  dispocisionesId: '1111'
                  curpOk: '1'
                  nombreCompleto: 'JAVIER DAVILA RODRIGUEZ'
                  apellidos: 'DAVILA RODRIGUEZ'
                  entidad: 'CIUDAD DE MÉXICO'
                  sexo: 'MASCULINO'
                  area: 'OFICINA DEL C. SECRETARIO'
                  tipoPersona: 'PF'
                - porcentaje: 95
                  nombre: 'ALFREDO JAVIER'
                  apellidoPaterno: 'DAVILA'
                  apellidoMaterno: 'RODRIGUEZ'
                  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 DAVILA RODRIGUEZ'
                  apellidos: 'DAVILA RODRIGUEZ'
                  entidad: 'NUEVO LEON'
                  sexo: 'MASCULINO'
                  area: 'CANDIDATOS 2003-2006'
                  tipoPersona: 'PF'
        '400':  
          description: BAD REQUEST  
          schema:  
            $ref: '#/definitions/Errores'  
          examples:  
            response:  
              errores:  
                - codigo: 400  
                  mensaje: 'El campo "{Campo}" no puede estar vacío.'  
        '401':  
          description: UNAUTHORIZED  
          schema:  
            $ref: '#/definitions/Errores'  
          examples:  
            response 401.1:  
              errores:  
                - codigo: 401.1  
                  mensaje: 'Acceso no autorizado, x-api-key inválida.'  
            response 401.2:  
              errores:  
                - codigo: 401.2  
                  mensaje: 'Acceso no autorizado.'  
            response 401.3:  
              errores:  
                - codigo: 401.3  
                  mensaje: 'Acceso no autorizado, no tiene el producto asociado.'  
            response 401.4:  
              errores:  
                - codigo: 401.4  
                  mensaje: 'Acceso no autorizado, no tiene acceso al recurso.'  
        '403':  
          description: FORBIDDEN  
          schema:  
            $ref: '#/definitions/Errores'  
          examples:  
            response:  
              errores:  
                - codigo: 403  
                  mensaje: 'No se pudo autenticar, x-signature inválida.'  
        '404':  
          description: NOT FOUND  
          schema:  
            $ref: '#/definitions/Errores'  
          examples:  
            response:  
              errores:  
                - codigo: 'BU0404'  
                  mensaje: 'No se encontró la persona.'  
        '429':  
          description: TOO MANY REQUESTS  
          schema:  
            $ref: '#/definitions/Errores'  
          examples:  
            response:  
              errores:  
                - codigo: 429  
                  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:  
            response:  
              errores:  
                - codigo: 'CO003'  
                  mensaje: 'Ocurrio un problema, inténtelo nuevamente más tarde.'  
        '503':  
          description: SERVICE UNAVAILABLE                
      deprecated: false  

definitions:  
  Peticion:
    title: Peticion
    description: 'Nombre completo de la persona a consultar.'
    type: object  
    required:  
      - razonSocial 
    properties:  
      razonSocial:
        description: 'Razon Social.' 
        type: string  
        minLength: 0  
        maxLength: 50  
        example: 'EMPRESA SA DE CV'
    example:   
      razonSocial: 'EMPRESA SA DE CV'
  Respuesta:
    title: Respuesta
    type: object 
    required: 
      - personas
    properties: 
      personas:
        description: 'Lista pública 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
      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'
      fechaIncorporacion:  
        type: string  
        description: 'Fecha de incorporacion de la persona moral (formato por defecto yyyy-MM-dd).'  
        example: '2001-01-01'          
      lista:  
        type: string  
        description: 'Lista pública 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'
      razonSocial:
        type: string  
        description: 'Razón social (física o moral).'
        minLength: 0
        maxLength: 40
        example: 'MORAL'
      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'  
      tipoPersona:  
        type: string  
        description: 'Tipo de persona (física o moral).'  
        example: 'PM' 
  Errores:  
    type: object  
    description: 'Si existen errores, se listarán.'  
    properties:  
      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  
    