swagger: '2.0'
info:
  description: "<p>API de Actualiza Datos Generales.</p><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.2.3
  title: 'Actualiza Datos Generales API'
  termsOfService: 'https://empresas.circulodecredito.com.mx/terminosycondiciones'
  contact:
    email: 'api@circulodecredito.com.mx'
  license:
    name: 'Derechos reservados Circulo de Crédito 2023'
    url: 'https://empresas.circulodecredito.com.mx/legales'
host: 'services.circulodecredito.com.mx'
basePath: '/v1/adg'
tags:
  - name: 'Actualiza Datos Generales'
    description: ''
    externalDocs:
      description: 'Portal de desarrolladores'
      url: 'https://developer.circulodecredito.com.mx/productos/nuestras-apis'
schemes:
  - 'https'
paths:
  '/por-cuenta':
    post:
      summary: 'Actualiza Datos Generales por cuenta'
      description: ''
      tags:
        - 'ADG por Cuenta'
      operationId: ''
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      parameters:
        - name: 'x-signature'
          in: 'header'
          required: true
          type: 'string'
          description: 'Firma generada con la llave privada'
          default: ''
        - name: 'x-api-key'
          in: 'header'
          required: true
          type: 'string'
          description: 'ConsumerKey obtenido desde el portal de desarrolladores'
          default: ''
        - name: 'username'
          in: 'header'
          required: true
          type: 'string'
          description: 'Usuario de Círculo de Crédito'
          default: ''
        - name: 'password'
          in: 'header'
          required: true
          type: 'string'
          description: 'Contraseña de Círculo de Crédito'
          default: ''
        - in: 'body'
          name: 'request'
          description: "<p>Estado en que se ubica el domicilio</p> <table><thead><tr><th>Clave</th><th>Estado</th></tr></thead><tbody><tr><td>AGS</td><td>AGUASCALIENTES</td></tr><tr><td>BC</td><td>BAJA CALIFORNIA NORTE</td></tr><tr><td>BCS</td><td>BAJA CALIFORNIA SUR</td></tr><tr><td>CAMP</td><td>CAMPECHE</td></tr><tr><td>CDMX</td><td>CIUDAD DE MÉXICO</td></tr><tr><td>CHIS</td><td>CHIAPAS</td></tr><tr><td>CHIH</td><td>CHIHUAHUA</td></tr><tr><td>COAH</td><td>COHAHUILA</td></tr><tr><td>COL</td><td>COLIMA</td></tr><tr><td>DF</td><td>DISTRITO FEDERAL</td></tr><tr><td>DGO</td><td>DURANGO</td></tr><tr><td>GTO</td><td>GUANAJUATO</td></tr><tr><td>GRO</td><td>GUERRERO</td></tr><tr><td>HGO</td><td>HIDALGO</td></tr><tr><td>JAL</td><td>JALISCO</td></tr><tr><td>MEX</td><td>MÉXICO</td></tr><tr><td>MICH</td><td>MICHOCÁN</td></tr><tr><td>MOR</td><td>MORELOS</td></tr><tr><td>NAY</td><td>NAYARIT</td></tr><tr><td>NL</td><td>NUEVO LEÓN</td></tr><tr><td>OAX</td><td>OAXACA</td></tr><tr><td>PUE</td><td>PUEBLA</td></tr><tr><td>QRO</td><td>QUERÉTARO</td></tr><tr><td>QROO</td><td>QUINTANA ROO</td></tr><tr><td>SLP</td><td>SAN LUIS POTOSÍ</td></tr><tr><td>SIN</td><td>SINALOA</td></tr><tr><td>SON</td><td>SONORA</td></tr><tr><td>TAB</td><td>TABASCO</td></tr><tr><td>TAMP</td><td>TAMAULIPAS</td></tr><tr><td>TLAX</td><td>TLAXCALA</td></tr><tr><td>VER</td><td>VERACRUZ</td></tr><tr><td>YUC</td><td>YUCATÁN</td></tr><tr><td>ZAC</td><td>ZACATECAS</td></tr></tbody></table>"
          required: true
          schema:
            $ref: '#/definitions/RequestADG'
      responses:
        '200':
          description: 'OK'
          schema:
            $ref: '#/definitions/RespuestaADG'
        '204':
          description: 'NO CONTENT'
        '400':
          description: 'BAD REQUEST'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '400'
                  mensaje: 'El campo [nombre_campo] es requerido'
                - codigo: '400'
                  mensaje: 'El código postal no corresponde al estado.'
                - codigo: '400.4'
                  mensaje: 'Petición incorrecta el x-signature es requerido.'
        '401':
          description: 'UNAUTHORIZED'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '401.1'
                  mensaje: 'Acceso no autorizado, x-api-key no vá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'
                  mensaje: 'Acceso denegado'
                - codigo: '403.1'
                  mensaje: 'No se pudo autenticar, x-signature no es válida.'
                - codigo: '403.2'
                  mensaje: 'No se pudo autenticar.'
        '404':
          description: 'NOT FOUND'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '404.1'
                  mensaje: 'No se encontró a la persona.'
        '405':
          description: 'METHOD NOT ALLOWED'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '405.1'
                  mensaje: 'Método no permitido.'
        '415':
          description: 'UNSUPPORTED MEDIA TYPE.'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '415.1'
                  mensaje: 'Medios no admitidos'
        '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'
                  mensaje: 'Ocurrio un error al procesar tu solicitud.'
                - 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:
  Error:
    type: 'object'
    description: 'error'
    properties:
      codigo:
        type: 'string'
        example: '400.1'
        description: 'Código de error.'
      mensaje:
        type: 'string'
        example: 'El campo "{Campo}" es requerido.'
        description: 'Mensaje de error.'
  Errores:
    type: 'object'
    description: 'Si existen errores, se listarán.'
    properties:
      errores:
        type: 'array'
        items:
          $ref: '#/definitions/Error'
  RequestADG:
    description: 'Obtiene Insights Generator'
    type: 'object'
    required: 
      - numOtorgante
      - cuenta
    properties:
      numOtorgante:
        type: 'string'
        minLength: 6
        maxLength: 6
        pattern: '(^[0-9]+)$'
        description: 'Número de otorgante.'
        example: '000496'
      cuenta:
        type: 'string'
        minLength: 1
        maxLength: 25
        pattern: '(^[A-Za-z0-9]+)$'
        description: 'Número de cuenta.'
        example: 'IC270220186999'
      claveEstado:
        $ref: '#/definitions/CatalogoEstados'
      cp:
        type: 'string'
        minLength: 5
        maxLength: 5
        pattern: '(^[0-9]+)$'
        description: 'Código Postal.'
        example: '34950'
      folioOtorgante:
        type: 'string'
        minLength: 5
        maxLength: 5
        pattern: '(^[0-9]+)$'
        description: 'Folio Otorgante'
        example: ''
  RespuestaADG:
    type: 'object'
    properties:
      personaADG:
        type: 'object'
        properties:
          numeroCuenta:
            type: 'string'
            example: 'IC270220186999'
          apellidoPaterno:
            type: 'string'
            example: 'DKDK'
          apellidoMaterno:
            type: 'string'
            example: 'GKFK'
          nombres:
            type: 'string'
            example: 'NUEVO'
          fechaNac:
            type: 'string'
            example: '11/09/1991'
          rfc:
            type: 'string'
            example: 'DXGN910911'
          curp:
            type: 'string'
            example: ''
          sexo:
            type: 'string'
            example: ''
      domicilioADG:
        type: 'object'
        properties:
          numeroCuenta:
            type: 'string'
            example: 'IC270220186999'
          calle:
            type: 'string'
            example: 'MEXICO 149'
          colonia:
            type: 'string'
            example: 'ESTACION COYOTES JOSE MARIA MORELOS'
          ciudad:
            type: 'string'
            example: ''
          telefono:
            type: 'string'
            example: ''
          estado:
            type: 'string'
            example: 'DGO'
          municipio:
            type: 'string'
            example: 'PUEBLO NUEVO'
          cp:
            type: 'string'
            example: '34950'
          fechaAlta:
            type: 'string'
            example: '20/02/2023'
          tipoAlta:
            type: 'string'
            example: 'CONSULTA'
          numConsultas:
            type: 'string'
            example: '1'
          fechaUltimaConsulta:
            type: 'string'
            example: '20/02/2023'
          comparacionCP:
            type: 'string'
            example: 'MISMO CP'
          comparacionEstado:
            type: 'string'
            example: 'MISMO ESTADO'
          comparacionTel:
            type: 'string'
            example: ''
          FolioDomicilio:
            type: 'string'
            example: '229626913'
      empleoADG:
        type: 'object'
        properties:
          numeroCuenta:
            type: 'string'
            example: 'IC270220186999'
          empleo:
            type: 'string'
            example: 'FARMACIA GENERICOS 123'
          calleEmpleo:
            type: 'string'
            example: 'AV 3 CALLE 15'
          coloniaEmpleo:
            type: 'string'
            example: ''
          ciudadEmpleo:
            type: 'string'
            example: ''
          telefonoEmpleo:
            type: 'string'
            example: '2717128020'
          puesto:
            type: 'string'
            example: 'ENTRETENIMIENTO'
          salario:
            type: 'string'
            example: '0'
          estadoEmpleo:
            type: 'string'
            example: ''
          municipioEmpleo:
            type: 'string'
            example: 'CORDOBA'
          cpEmpleo:
            type: 'string'
            example: '00000'
          fechaAlta:
            type: 'string'
            example: '12/05/2012'
      VariablesDomicilio:
        type: 'object'
        properties:
          numeroCuenta:
            type: 'string'
            example: 'IC270220186999'
          folioDomicilio:
            type: 'string'
            example: '229626913'
          fechaUltimaConsulta:
            type: 'string'
            example: '2018-05-09 16:28:28'
          numCreditos:
            type: 'string'
            example: '1'
          numCreditosTresMeses:
            type: 'string'
            example: '0'
          numCreditosTresMesesNos:
            type: 'string'
            example: '0'
          otorgantesConsulta:
            type: 'string'
            example: '1'
          otorgantesConsultaTresMeses:
            type: 'string'
            example: '0'
          otorgantesCarga:
            type: 'string'
            example: '1'
          otorgantesCargaTresMeses:
            type: 'string'
            example: '0'
          otorgantesCargaTresMesesNos:
            type: 'string'
            example: '0'
          servicioCarga:
            type: 'string'
            example: '0'
          servicioCargaTresMeses:
            type: 'string'
            example: '0'
          servicioConsulta:
            type: 'string'
            example: '0'
          servicioConsultaTresMeses:
            type: 'string'
            example: '0'
          numMiembros:
            type: 'string'
            example: '1'
          miembrosCredito:
            type: 'string'
            example: '1'
          miembrosCreditoS:
            type: 'string'
            example: '0'
          miembrosCreditoNos:
            type: 'string'
            example: '1'
          miembrosConsulta:
            type: 'string'
            example: '2'
          miembrosConsultaTresMeses:
            type: 'string'
            example: '1'
          calif:
            type: 'string'
            example: '16'
      success:
        type: 'boolean'
        example: true
      description:
        type: 'string'
        example: 'Solicitud procesada exitosamente.'
      folioConsulta:
        type: 'string'
        example: 390019042
  CatalogoEstados:
    type: 'string'
    description: 'Estado en que se ubica el domicilio <table><thead><tr><th>Clave</th><th>Estado</th></tr></thead><tbody><tr><td>AGS</td><td>AGUASCALIENTES</td></tr><tr><td>BC</td><td>BAJA CALIFORNIA NORTE</td></tr><tr><td>BCS</td><td>BAJA CALIFORNIA SUR</td></tr><tr><td>CAMP</td><td>CAMPECHE</td></tr><tr><td>CDMX</td><td>CIUDAD DE MÉXICO</td></tr><tr><td>CHIS</td><td>CHIAPAS</td></tr><tr><td>CHIH</td><td>CHIHUAHUA</td></tr><tr><td>COAH</td><td>COHAHUILA</td></tr><tr><td>COL</td><td>COLIMA</td></tr><tr><td>DF</td><td>DISTRITO FEDERAL</td></tr><tr><td>DGO</td><td>DURANGO</td></tr><tr><td>GTO</td><td>GUANAJUATO</td></tr><tr><td>GRO</td><td>GUERRERO</td></tr><tr><td>HGO</td><td>HIDALGO</td></tr><tr><td>JAL</td><td>JALISCO</td></tr><tr><td>MEX</td><td>MÉXICO</td></tr><tr><td>MICH</td><td>MICHOCÁN</td></tr><tr><td>MOR</td><td>MORELOS</td></tr><tr><td>NAY</td><td>NAYARIT</td></tr><tr><td>NL</td><td>NUEVO LEÓN</td></tr><tr><td>OAX</td><td>OAXACA</td></tr><tr><td>PUE</td><td>PUEBLA</td></tr><tr><td>QRO</td><td>QUERÉTARO</td></tr><tr><td>QROO</td><td>QUINTANA ROO</td></tr><tr><td>SLP</td><td>SAN LUIS POTOSÍ</td></tr><tr><td>SIN</td><td>SINALOA</td></tr><tr><td>SON</td><td>SONORA</td></tr><tr><td>TAB</td><td>TABASCO</td></tr><tr><td>TAMP</td><td>TAMAULIPAS</td></tr><tr><td>TLAX</td><td>TLAXCALA</td></tr><tr><td>VER</td><td>VERACRUZ</td></tr><tr><td>YUC</td><td>YUCATÁN</td></tr><tr><td>ZAC</td><td>ZACATECAS</td></tr></tbody></table>'
    minLength: 3
    maxLength: 4
    pattern: '(^[A-Za-z]+)$'
    example: 'DGO'
    enum:
      - 'AGS'
      - 'BC'
      - 'BCS'
      - 'CAMP'
      - 'COAH'
      - 'COL'
      - 'CHIS'
      - 'CHIH'
      - 'DF'
      - 'CDMX'
      - 'DGO'
      - 'GTO'
      - 'GRO'
      - 'HGO'
      - 'JAL'
      - 'MEX'
      - 'MICH'
      - 'MOR'
      - 'NAY'
      - 'NL'
      - 'OAX'
      - 'PUE'
      - 'QRO'
      - 'QROO'
      - 'SLP'
      - 'SIN'
      - 'SON'
      - 'TAB'
      - 'TAMP'
      - 'TLAX'
      - 'VER'
      - 'YUC'
      - 'ZAC'