swagger: '2.0'
info:
  title: 'GuardIAn Score de Circulo de Crédito Simulacion'
  description: "<p>Guardian Score de CdC por Folio Consulta.<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.0
  termsOfService: 'https://developer.circulodecredito.com.mx/legal'
  contact:
    email: 'api@circulodecredito.com.mx'
  license:
    name: 'Derechos reservados Circulo de Crédito 2021'
    url: 'https://developer.circulodecredito.com.mx/aviso-de-privacidad'
host: 'services.circulodecredito.com.mx'
basePath: '/'
tags:
  - name: 'GuardIAn Score'
    description: 'GuardIAn Score por Folio consulta'
    externalDocs:
      description: 'Portal de desarrolladores'
      url: 'https://developer.circulodecredito.com.mx/productos/nuestras-apis'
schemes:
- 'https'
paths:
  '/sandbox/v1/guardian-score':
    post:
      tags:
      - 'GuardIAn Score'
      operationId: 'creditreport'
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      parameters:
        - name: 'x-api-key'
          in: 'header'
          description: 'ConsumerKey obtenido desde el portal de desarrolladores'
          required: true
          type: 'string'
        - in: 'body'
          name: 'body'
          description: 'Solicitud para obtener Score de Fraude <table><thead><tr><th>FolioOtorgante</th><th>FolioConsulta</th><th>Valor del score</th></tr></thead><tbody><tr><td>1</td><td>386636538</td><td>0.485</td></tr><tr><td>2</td><td>386636539</td><td>0.265</td></tr><tr><td>3</td><td>386636540</td><td>0.980</td></tr><tr><td>4</td><td>386636541</td><td>0.468</td></tr><tr><td>5</td><td>386636542</td><td>0.090</td></tr><tr><td>6</td><td>386636543</td><td>0.635</td></tr><tr><td>7</td><td>386636544</td><td>0.825</td></tr><tr><td>8</td><td>386636545</td><td>0.880</td></tr><tr><td>9</td><td>386636546</td><td>0.775</td></tr><tr><td>10</td><td>386636547</td><td>0.380</td></tr><tr><td>11</td><td>386636548</td><td>0.687</td></tr><tr><td>12</td><td>386636549</td><td>0.894</td></tr><tr><td>13</td><td>386636550</td><td>0.490</td></tr><tr><td>14</td><td>386636551</td><td>0.326</td></tr><tr><td>15</td><td>386636552</td><td>0.938</td></tr><tr><td>16</td><td>386636553</td><td>0.535</td></tr><tr><td>17</td><td>386636554</td><td>0.305</td></tr><tr><td>18</td><td>386636555</td><td>0.954</td></tr><tr><td>19</td><td>386636556</td><td>0.250</td></tr><tr><td>20</td><td>386636557</td><td>0.959</td></tr></tbody></table>' 
          required: true
          schema:
            $ref: '#/definitions/RequestBody'
      responses:
        '200':
          description: 'OK'
          schema:
            $ref: '#/definitions/ResponseBody'
        '400':
          description: "BAD REQUEST"
          schema:
            $ref: "#/definitions/Error"
          examples:
            application/json:
              errores:
                - codigo: "400.1"
                  mensaje: "El campo \"{Campo}\" no puede estar vacío."
        '401':
          description: "UNAUTHORIZED"
          schema:
            $ref: "#/definitions/Error"
          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/Error"
          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/Error"
          examples:
            application/json:
              errores:
                - codigo: "404.1"
                  mensaje: "No se encontraron resultados."
        '429':
          description: 'TOO MANY REQUESTS'
          schema:
            $ref: '#/definitions/Error'
          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"
          examples:
            application/json:
              errores:
                - codigo: "500.1"
                  mensaje: "Ocurrió un problema, inténtelo nuevamente más tarde."
          schema:
            $ref: "#/definitions/Error"
        '503':
          description: 'SERVICE UNAVAILABLE'
          examples:
            application/json:
              errores:
                - codigo: "503.1"
                  mensaje: "Servicio no disponible."
definitions:
  CreditReport:
    type: object
    required:
    - 'idFolioConsultaReporte'
    - 'folioOtorgante'
    properties:
      idFolioConsultaReporte:
        description: 'Folio de consulta del RC o RCC para identificar al solicitante de crédito'
        type: string
        minLength: 2
        maxLength: 30
        example: 389844067
      folioOtorgante:
        description: 'Folio interno único o número consecutivo para identificar a la persona'
        type: string
        maxLength: 10
        example: 0202
  RequestBody:
    type: object
    required:
      - 'creditReport'
    properties:
      creditReport:
        $ref: '#/definitions/CreditReport'
  
  ResponseBody:
    type: 'object'
    properties:
      score:
        type: 'string'
        description: 'Valor del score  (0, 10)'
        example: '3.5'
      razones:
        type: 'array'
        description: 'Reglas activadas'
        items:
          type: 'string'
        example: ['CDC22','CDC23','CDC224','CDC27','CDC06']
      folioConsulta:
        description: 'Folio de conuslta de  score de fraude' 
        type: 'string'
        example: 390008494
      success:
        type: 'boolean'
        example: true
      mensaje:
        type: 'string'
        example: 'La peticion se proceso de manera exitosa'
  Error:
    type: 'object'
    properties:
      code:
        type: 'string'
        example: 'VA003'
        description: 'Código de error'
      message:
        type: 'string'
        example: 'El campo "campo" es requerido.'
        description: 'Mensaje de error'
      title:
        type: 'string'
        example: 'Alerta'
        description: 'Titulo de error'
      status:
        type: 'string'
        example: 'BAD_REQUEST'
        description: 'Status Http'
        minLength: 3
        maxLength: 3
        enum:
          - '100'
          - '101'
          - '102'
          - '103'
          - '200'
          - '201'
          - '202'
          - '203'
          - '204'
          - '205'
          - '206'
          - '207'
          - '208'
          - '226'
          - '300'
          - '301'
          - '302'
          - '303'
          - '304'
          - '305'
          - '307'
          - '308'
          - '400'
          - '401'
          - '402'
          - '403'
          - '404'
          - '405'
          - '406'
          - '407'
          - '408'
          - '409'
          - '410'
          - '411'
          - '412'
          - '413'
          - '414'
          - '415'
          - '416'
          - '417'
          - '418'
          - '419'
          - '420'
          - '421'
          - '422'
          - '423'
          - '424'
          - '426'
          - '428'
          - '429'
          - '431'
          - '451'
          - '500'
          - '501'
          - '502'
          - '503'
          - '504'
          - '505'
          - '506'
          - '507'
          - '508'
          - '509'
          - '510'
          - '511'
    title: 'Error'
    description: 'error'