swagger: '2.0'
info:
  title: 'SMART COLLECTION SCORE simulacion'
  description: "<p>API SMART COLLECTION Simulacion.<br/><img src='https://developer.circulodecredito.com.mx/sites/default/files/2020-10/circulo_de_credito-apihub.png' height='40' width='220'/></p><br/><p><a href='https://developer.circulodecredito.com.mx/legal' style='text-decoration:none;'>Términos de servicio</a></p><p><a href='mailto:api@circulodecredito.com.mx'>Contacto del desarrollador</a></p>"
  version: 1.0.1

  license:
    name: 'Derechos reservados Circulo de Crédito 2021'
    url: 'https://developer.circulodecredito.com.mx/aviso-de-privacidad'
host: 'services.circulodecredito.com.mx'
basePath: '/sandbox/v1/smartcollection'
tags:
  - name: 'SMART COLLECTION SCORE Simulacion'
    description: ''
    externalDocs:
      description: 'Portal de desarrolladores'
      url: 'https://developer.circulodecredito.com.mx/productos/nuestras-apis'
schemes:
  - 'https'
paths:
  '/':
    post:
      tags:
        - 'SMART COLLECTION SCORE Simulacion'
      operationId: 'getReporte'
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      parameters:
        - in: 'header'
          name: 'x-api-key'
          required: true
          type: 'string'
          description: 'ConsumerKey obtenido desde el portal de desarrolladores'
        - in: 'body'
          name: 'body'
          description: 'Casos de prueba <br/><table ><thead><tr><th style="text-align: center; vertical-align: middle;">FolioOtorgante</th><th style="text-align: center; vertical-align: middle;">NumeroCuenta</th><th>TipodeContrato</th><th>TipoCuenta</th><th>TipoFrecuencia</th><th>VentanaTiempo</th><th>PeriodosVencidos</th><th>SaldoVencido</th><th>SaldoActual</th><th></th><th>Score</th><th>ErrorCode</th></tr></thead><tbody><tr><td>20210301</td><td>1355369563024280</td><td>TC</td><td>R</td><td>M</td><td>M1</td><td>1</td><td>11269.23</td><td>14759.00</td><td></td><td>297</td><td></td></tr><tr><td>20210302</td><td>1466589454482940</td><td>TC</td><td>R</td><td>M</td><td>M1</td><td>3</td><td>20304.12</td><td>22238.00</td><td></td><td>0</td><td>C2</td></tr><tr><td>20210303</td><td>1113547568298960</td><td>TD</td><td>R</td><td>M</td><td>M1</td><td>3</td><td>3726.45</td><td>12546.00</td><td></td><td>194</td><td></td></tr><tr><td>20210304</td><td>1240170672495810</td><td>HB</td><td>H</td><td>M</td><td>M1</td><td>2</td><td>17205.34</td><td>17205.00</td><td></td><td>200</td><td></td></tr><tr><td>20210305</td><td>1236039380997310</td><td>LC</td><td>F</td><td>M</td><td>M1</td><td>1</td><td>17389.19</td><td>23776.00</td><td></td><td>500</td><td></td></tr></tbody></table>'
          required: true
          schema:
            $ref: '#/definitions/Peticion'
      responses:
        '200':
          description: 'Ok'
          schema:
            $ref: '#/definitions/Respuesta'
        '204':
          description: 'No content'
        '400':
          description: 'Bad request'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              errores:
                - codigo: '400.1'
                  mensaje: 'El campo "{Campo}" no puede estar vacío.'
        '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.4'
                  mensaje: 'Acceso no autorizado, no tiene el producto asociado.'
                - codigo: '401.5'
                  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 no es válida.'
        '404':
          description: 'Not found'
          schema:
            $ref: '#/definitions/Errores'
          examples:
            application/json:
              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'
    options:
      tags:
        - 'SMART COLLECTION SCORE Simulacion'
      responses:
        '200':
          description: 'OK'
        '403':
          description: 'FORBIDDEN'
definitions:
    CatalogoTipoContrato:
     type: 'string'
     maxLength: 2
     example: 'TC'
     description: 'Tipo de contrato de la cuenta. Revisar catálogo. <table><thead><tr><th>Clave</th><th>Descripción</th><th>Segmento</th></tr></thead><tbody><tr><td>AB</td><td>Automotriz Bancario</td><td>Consumo</td></tr><tr><td>AE</td><td>Física Actividad Empresarial</td><td>Hipotecario</td></tr><tr><td>AM</td><td>Aparato / Muebles</td><td>Consumo</td></tr><tr><td>AR</td><td>Arrendamiento</td><td>Consumo</td></tr><tr><td>BR</td><td>Bienes Raíces</td><td>Consumo</td></tr><tr><td>CA</td><td>Compra de Automóvil</td><td>Consumo</td></tr><tr><td>CC</td><td>Crédito al Consumo</td><td>Consumo</td></tr><tr><td>CF</td><td>Crédito Fiscal</td><td>Consumo</td></tr><tr><td>CO</td><td>Consolidación</td><td>Consumo</td></tr><tr><td>CP</td><td>Crédito Personal al Consumo</td><td>Consumo</td></tr><tr><td>HB</td><td>Hipotecario Bancario</td><td>Hipotecario</td></tr><tr><td>HE</td><td>Préstamo Tipo Home Equity</td><td>Hipotecario</td></tr><tr><td>HV</td><td>Hipotecario o Vivienda</td><td>Hipotecario</td></tr><tr><td>LC</td><td>Línea de Crédito</td><td>Consumo</td></tr><tr><td>LR</td><td>Línea de Crédito Reinstalable</td><td>Consumo</td></tr><tr><td>MC</td><td>Mejoras a la Casa</td><td>Consumo</td></tr><tr><td>NG</td><td>Préstamo No Garantizado</td><td>Consumo</td></tr><tr><td>OT</td><td>Otros</td><td>Consumo</td></tr><tr><td>PB</td><td>Préstamo Personal Bancario</td><td>Consumo</td></tr><tr><td>PE</td><td>Préstamo para Estudiante</td><td>Consumo</td></tr><tr><td>PG</td><td>Préstamo Garantizado</td><td>Consumo</td></tr><tr><td>PM</td><td>Préstamo Empresarial</td><td>Hipotecario</td></tr><tr><td>PN</td><td>Préstamo de Nómina</td><td>Consumo</td></tr><tr><td>PP</td><td>Préstamo Personal</td><td>Consumo</td></tr><tr><td>SH</td><td>Segunda Hipoteca</td><td>Hipotecario</td></tr><tr><td>TC</td><td>Tarjeta de Crédito</td><td>Tarjeta</td></tr><tr><td>TD</td><td>Tarjeta Departamental</td><td>Consumo</td></tr></tbody></table>'
     enum:
        - AB
        - AE
        - AM
        - AR
        - BR
        - CA
        - CC
        - CF
        - CO
        - CP
        - HB
        - HE
        - HV
        - LC
        - LR
        - MC
        - NG
        - OT
        - PB
        - PE
        - PG
        - PM
        - PN
        - PP
        - SH
        - TC
        - TD
    CatalogoTipoFrecuencia:
      type: 'string'
      maxLength: 1
      example: 'S'
      description: 'Tipo de frecuencia de pago de la cuenta. Revisar catálogo. <table><thead><tr><th>Clave</th><th>Descripción</th><th>Tipo de Contrato</th></tr></thead><tbody><tr><td>S</td><td>Semanal</td><td>CC y LC</td><tr><td>C</td><td>Catorcenal</td><td>No aplica</td><tr><td>Q</td><td>Quincenal</td><td>No aplica</td></tr><tr><td>M</td><td>Mensual</td><td>Todos</td></tr><tr><td>B</td><td>Bimestral</td><td>No aplica</td></tr><tr><td>T</td><td>Trimestral</td><td>No aplica</td></tr><tr><td>A</td><td>Anual</td><td>No aplica</td></tr><tr><td>U</td><td>Una sola exhibición</td><td>No aplica</td></tr></tbody></table>'
      enum:
        - 'S'
        - 'C'
        - 'Q'
        - 'M'
        - 'B'
        - 'T'
        - 'A'
        - 'U'
    CatalogoTipoCuenta:
      type: 'string'
      maxLength: 1
      example: 'R'
      description: 'Tipo de cuenta del cliente. Revisar catálogo. <table><thead><tr><th>Clave</th><th>Descripción</th></tr></thead><tbody><tr><td>R</td><td>Revolvente</td></tr><tr><td>F</td><td>Pagos fijos</td></tr><tr><td>H</td><td>Hipoteca</td></tr><tr><td>L</td><td>Sin límite preestablecido</td></tr><tr><td>Q</td><td>Quirografario</td></tr><tr><td>A</td><td>Crédito de habilitación o avío</td></tr><tr><td>E</td><td>Crédito refaccionario</td></tr><tr><td>P</td><td>Crédito prendario</td></tr></tbody></table>'
      enum:
        - 'R'
        - 'F'
        - 'H'
        - 'L'
        - 'Q'
        - 'A'
        - 'E'
        - 'P'

    CatalogoPeriodosVencidos:
      type: 'string'
      maxLength: 2
      example: 'V'
      description: 'Periodos Vencidos de la cuenta al momento de la fecha de solicitud de la calificación. Revisar catálogo. <table><thead><tr><th>Clave</th><th>Descripción</th></tr></thead><tbody><tr><td>V</td><td>Cuenta vigente, pago puntual</td></tr><tr><td>1</td><td>Cuenta con un periodo de atraso</td></tr><tr><td>2</td><td>Cuenta con dos periodos de atraso</td></tr><tr><td>3</td><td>Cuenta con tres periodos de atraso</td></tr><tr><td>84</td><td>Cuenta con ochenta y cuatro periodos de atraso o más</td></tr></tbody></table>'
      enum:
        - 'V'
        - '1'
        - '2'
        - '3'
        - '84'
    CatalogoVentanaTiempo:
      type: 'string'
      maxLength: 2
      example: '2S'
      description: 'Horizonte de predicción del score. Revisar catálogo. <table><thead><tr><th>Clave</th><th>Descripción</th></tr></thead><tbody><tr><td>2S</td><td>Ventana de tiempo en frecuencia semanal a 15 días</td></tr><tr><td>4S</td><td>Ventana de tiempo en frecuencia semanal a 30 días</td></tr><tr><td>8S</td><td>Ventana de tiempo en frecuencia semanal a 60 días</td></tr> <tr><td>1M</td><td>Ventana de tiempo en frecuencia mensual a 30 días</td></tr><tr><td>3M</td><td>Ventana de tiempo en frecuencia mensual a 90 días</td></tr></tbody></table>'
      enum:
        - '2S'
        - '4S'
        - '8S'
        - '1M'
        - '3M'
    CatalogoErrorCode:
      type: 'string'
      maxLength: 2
      example: 'E1'
      description: 'Código de error asociado al Score generado. Revisar catálogo. <table><thead><tr><th>Clave</th><th>Descripción</th></tr></thead><tbody>  <tr><td>E1</td><td>Frecuencia de pago inválida.</td></tr>    <tr><td>E2</td><td>Ventana de tiempo inválida.</td></tr>    <tr><td>E3</td><td>Atraso actual inválido.</td></tr>    <tr><td>E4</td><td>Tipo de contrato inválido.</td></tr>    <tr><td>E5</td><td>Error en el cálculo por inconsistencia de datos.</td></tr>    <tr><td>E6</td><td>No existe número de cuenta en la base.</td></tr><tr><td>E7</td><td>El titular de la cuenta encontrada está marcado como fallecido.</td></tr><tr><td>E8</td><td>El titular de la cuenta encontrada está marcado como fraudulento.</td></tr><tr><td>E9</td><td>El crédito se encuentra duplicado.</td></tr>    </tbody></table>'
      enum:
        - 'E1'
        - 'E2'
        - 'E3'
        - 'E4'
        - 'E5'
        - 'E6'
        - 'E7'
        - 'E8'
        - 'E9'
    Error:
      type: 'object'
      description: 'error'
      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.'
    Errores:
      type: 'object'
      description: 'Si existen errores, se listarán.'
      properties:
        errores:
          type: 'array'
          items:
            $ref: '#/definitions/Error'
    Peticion:
      type: 'object'
      description: 'Datos generales de la persona a consultar.'
      required:
        - 'folioOtorgante'
        - 'numeroCuenta'
        - 'tipoContrato'
        - 'tipoCuenta'
        - 'tipoFrecuencia'
        - 'fronteraDeImpago'
        - 'periodosVencidos'
        - 'saldoVencido'
        - 'saldoActual'
      properties:
        folioOtorgante:
          type: 'string'
          maxLength: 36
          description: 'Folio del otorgante en la solicitud, número único generado por el otorgante para su seguimiento.'
          example: '20210301'
        numeroCuenta:
          type: 'string'
          maxLength: 50
          description: 'Número de cuenta del cliente.'
          example: '1355369563024280'
        tipoContrato:
          $ref: '#/definitions/CatalogoTipoContrato'
        tipoCuenta:
          $ref: '#/definitions/CatalogoTipoCuenta'
        tipoFrecuencia:
          $ref: '#/definitions/CatalogoTipoFrecuencia'
        fronteraDeImpago:
          $ref: '#/definitions/CatalogoVentanaTiempo'
        periodosVencidos:
          $ref: '#/definitions/CatalogoPeriodosVencidos'
        saldoVencido:
          type: 'string'
          maxLength: 20
          description: 'Saldo Vencido de la cuenta al momento de la fecha de solicitud de la calificación.'
          example: '11269.23'
        saldoActual:
          type: 'string'
          maxLength: 20
          description: 'Saldo Actual de la cuenta al momento de la fecha de solicitud de la calificación.'
          example: '14759.00'

    Respuesta:
      type: 'object'
      required:
        - 'folioConsulta'
        - 'folioOtorgante'
        - 'score'
        - 'fronteraDeImpago'
        - 'fechaDeCalculo'
      properties:
        folioConsulta:
          type: 'string'
          maxLength: 20
          description: 'Folio de consulta en la solicitud, número único generado por el otorgante para su seguimiento.'
          example: '386636538'
        folioOtorgante:
          type: 'string'
          maxLength: 36
          description: 'Folio del otorgante en la solicitud, número único generado por el otorgante para su seguimiento.'
          example: '20210304'
        score:
          type: 'number'
          maxLength: 4
          description: 'Valor númerico de Smart Collection Score'
          example: 297
        fronteraDeImpago:
          $ref: '#/definitions/CatalogoVentanaTiempo'
        errorCode:
          $ref: '#/definitions/CatalogoErrorCode'
        fechaDeCalculo:
          maxLength: 10
          type: 'string'
          description: 'formato (yyyy-MM-dd)'
          example: '2021-08-04'
        

