swagger: '2.0'
info:
  description: "This API simulates the aggregation of bank data from a source.<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.0'
  title: 'API Bank Data Aggregation Sandbox'
  termsOfService: 'https://developer.circulodecredito.com.mx/legal-mx'
  contact:
    email: 'api@circulodecredito.com.mx'
host: 'services.circulodecredito.com.mx'
basePath: '/sandbox/v1/ada'
tags:
  - name: 'ADA - API for Bank Data Aggregation'
    externalDocs:
      description: 'API Hub'
      url: 'https://developer.circulodecredito.com.mx/en/products/ada'
schemes:
  - 'https'
parameters:
  x-api-key:
    in: 'header'
    name: 'x-api-key'
    required: true
    type: 'string'
    description: 'The Consumer Key assigned to the client application you have registered in API Hub.'
  inquiryId:
    in: 'path'
    name: 'inquiryId'
    description: 'The identifier of the inquiry.'
    required: true
    type: 'string'
  page:
    in: 'query'
    name: 'page'
    description: 'Page to query.'
    required: false
    type: 'string'
  perPage:
    in: 'query'
    name: 'perPage'
    description: 'Rows per page.'
    required: false
    type: 'string'
  startAt:
    in: 'query'
    name: 'startAt'
    description: 'Initial date. As defined by date-time - RFC3339.'
    required: false
    type: 'string'
    format: 'date-time'
  endAt:
    in: 'query'
    name: 'endAt'
    description: 'End date.  As defined by date-time - RFC3339.'
    required: false
    type: 'string'
    format: 'date-time'
  inquiryStatus:
    in: 'query'
    name: 'inquiryStatus'
    description: 'Inquiry status.'
    enum: ["WAOIR", "NAOIR", "AOIR", "TEAOIR", "TEIR", "TENAEIR", "AEIR", "NAEIR", "NAEIRMR", "RJTIR", "RCVIR", "SN", "DN", "NDN", "CI", "EI"]
    required: false
    type: 'string'
  successCheck:
    in: 'query'
    name: 'successCheck'
    description: 'Inquiry process result.'
    required: false
    type: 'string'
  subscriptionId:
    in: 'path'
    name: 'subscriptionId'
    description: 'Inquiry process result.'
    required: true
    type: 'string'
    format: 'uuid'
    minLength: 36
    maxLength: 36
paths:
  '/bankdataaggregations/{inquiryId}':
    parameters:
      - $ref: '#/parameters/x-api-key'
      - $ref: '#/parameters/inquiryId'
    get:
      summary: 'Returns the bank data aggregation process payload.'
      description: '<p>Returns the bank data aggregation process payload associated with the inquiry. The inquiry is identified by the <samp>{inquiryId}</samp> path parameter.</p><p>Remember the inquiry status of every bank data aggregation process gives you more information about the process stage.</p><p><b>Inquiry Status</b></p><table border="1"><tr align="center"><td><h4>Waiting Authorization for Inquiry Request</h4></td><td width="10%"><h4>WAOIR</h4></td><td align="left">Círculo de Crédito has begin the authorization and authentication process for the bank data aggregation inquiry request and it generated the widget URL in order to get the consumer consent. Círculo de Crédito is waiting for the consumer authorization.</td></tr><tr align="center"><td><h4>Not Authorized Inquiry Request</h4></td><td width="10%"><h4>NAOIR</h4></td><td align="left">The consumer has refused the authorization for the bank data aggregation inquiry request.</td></tr> <tr align="center"><td><h4>Authorized Inquiry Request</h4></td><td width="10%"><h4>AOIR</h4></td><td align="left">The consumer has accepted the authorization for the bank data aggregation inquiry request. Círculo de Crédito is waiting for the consumer authentication process.</td></tr><tr align="center"><td><h4>Authenticated Inquiry Request</h4></td><td width="10%"><h4>AEIR</h4></td><td align="left">The consumer has been authenticated in the source.</td></tr>
        <tr align="center"><td><h4>Not Authenticated Inquiry Request</h4></td><td width="10%"><h4>NAEIR</h4></td><td align="left">The consumer has not been authenticated in the source. Círculo de Crédito is waiting for a new authentication attempt.</td></tr>
        <tr align="center"><td><h4>Not Authenticated Inquiry Request and Maximum Number of Unsuccessful Login Attempts Reached</h4></td><td width="10%"><h4>NAEIRMR</h4></td><td align="left">The consumer has not been authenticated in the source and the maximum number of unsuccessful login attempts has reached.</td></tr>
        <tr align="center"><td><h4>Received Inquiry Request</h4></td><td width="10%"><h4>RCVIR</h4></td><td align="left">Círculo de Crédito is going to begin the bank data aggregation process. It has received the consumer consent through the authorization and authentication process.</td></tr>
        <tr align="center"><td><h4>Rejected Inquiry Request</h4></td><td width="10%"><h4>RJTIR</h4></td><td align="left">Círculo de Crédito could not begin the bank data aggregation process. The bank data aggregation inquiry process has been halted.</td></tr>
        <tr align="center"><td><h4>Inquiry Request Token Expired</h4></td><td width="10%"><h4>TEIR</h4></td><td align="left">The consumer has not accessed to the widget in order to give the consent to aggregate his bank data. The maximum time in order to get the consumer consent has been reached.</td></tr>
        <tr align="center"><td><h4>Authorized Inquiry Request Token Expired</h4></td><td width="10%"><h4>TEAOIR</h4></td><td align="left">The consumer has authorized the bank data aggregation inquiry request but the maximum time in order to authenticate him has been reached.</td></tr>
        <tr align="center"><td><h4>Not Authenticated Inquiry Request Token Expired</h4></td><td width="10%"><h4>TENAEIR</h4></td><td align="left">The consumer has gave his credentials to login the source but the try has failed. The maximum time in order to authenticate him has been reached.</td></tr>
        <tr align="center"><td><h4>Sending Notification</h4></td><td width="10%"><h4>SN</h4></td><td align="left">Círculo de Crédito has processed the bank inquiry request. Círculo de Crédito is sending the event notification through the API Hub.</td></tr>        <tr align="center"><td><h4>Delivered Notification</h4></td><td width="10%"><h4>DN</h4></td><td align="left">Círculo de Crédito has finished the processing of the inquiry. Círculo de Crédito sent the notification to the customer through API Hub and it received the respective acknowledge.</td></tr>        <tr align="center"><td><h4>Not Delivered Notification</h4></td><td width="10%"><h4>NDN</h4></td><td align="left">Círculo de Crédito has completed the processing of the inquiry. Círculo de Crédito tried to send the notification to the customer’s API on several times, however, it never got the acknowledge from the customer.</td></tr>        <tr align="center"><td><h4>Consumed Inquiry</h4></td><td width="10%"><h4>CI</h4></td><td align="left">The customer has consumed the response payload associated with the inquiry regardless of the outcome of the notification process.</td></tr>        <tr align="center"><td><h4>Expired Inquiry</h4></td><td width="10%"><h4>EI</h4></td><td align="left">The inquiry and the associated result have been archived. Only inquiries that have been made in the last 30 days will be shown.</td></tr>      </table><p>When you create a subscription in the Sandbox environment for listening to the API for Bank Data Aggregation "ada" event, we create some inquiries in order you could test this method.</p><p>You could get the payload from different inquiries in different bank data aggregation process stages (Inquiry Status).<p><b>Sandbox Use Cases</b></p><table border="1"><tr><th>Use case</th><th width="10%">Inquiry Status</th><th width="50%">InquiryId</th></tr>  <tr align="center"><td  align="left">Círculo de Crédito is waiting for consumer authorization for the bank data aggregation inquiry process associated with the {inquiryId}.</td><td><h4>WAOIR</h4></td><td><samp>a3b914e9-c0fb-485a-ab46-a82f29560f3e</samp></td></tr>  <tr align="center"><td  align="left">The consumer has not authorized Círculo de Crédito to begin the bank data aggregation process associated with the {inquiryId} path parameter.</td><td><h4>NAOIR</h4></td><td><samp>09571e9d-4350-42b5-8fab-c2c304b57c0e</samp></td></tr>  <tr align="center"><td  align="left">The consumer has authorized Círculo de Crédito to begin the bank data aggregation process associated with the {inquiryId} path parameter. Círculo de Crédito is waiting for the consumer authentication process.</td><td><h4>AOIR</h4></td><td><samp>df338dc4-1d71-4702-9181-c64f409342d0</samp></td></tr>  <tr align="center"><td  align="left">The consumer has been authenticated by the source. Círculo de Crédito is going to complete the authorization and authentication process of the bank data aggregation inquiry request associated with the {inquiryId} path parameter.</td><td><h4>AEIR</h4></td><td><samp>8ff4d198-0abf-4df9-90ca-4b3d8e23fa47</samp></td></tr>  <tr align="center"><td  align="left">The consumer has not been authenticated in the source. Círculo de Crédito is waiting for a new authentication attempt for the bank data aggregation inquiry request associated with the {inquiryId} path parameter.</td><td><h4>NAEIR</h4></td><td><samp>74b2f279-e9fe-4650-99f7-14f90ce91bb3</samp></td></tr>  <tr align="center"><td  align="left">The consumer has not been authenticated in the source. The maximum number of unsuccessful login attempts has reached.</td><td><h4>NAEIRMR</h4></td><td><samp>1ee29873-6054-44ba-88fe-f63da2eb1d3c</samp></td></tr>  <tr align="center"><td  align="left">Círculo de Crédito has received the consumer consent through the authorization and authentication widget. The bank data aggregation process associated with the {inquiryId} path parameter has begun.</td><td><h4>RCVIR</h4></td><td><samp>cd021c98-761c-472c-b80f-19f3a13ac476</samp></td></tr>  <tr align="center"><td  align="left">Círculo de Crédito could not begin the bank data aggregation process associated with the {inquiryId} path parameter. The bank data aggregation inquiry process has been halted and Círculo de Crédito is going to notify this event.</td><td><h4>RJTIR</h4></td><td><samp>1b1c636d-1729-45df-8594-6de7d92131be</samp></td></tr>  <tr align="center"><td  align="left">The maximum time in order to authenticate the consumer has been reached. The inquiry request token associated with the {inquiryId} path parameter has expired.</td><td><h4>TEIR</h4></td><td><samp>8d62ca8c-4c8c-46c9-8d6d-f550324fa559</samp></td></tr>  <tr align="center"><td  align="left">The maximum time in order to authenticate the consumer has been reached. The authorized inquiry request token associated with the {inquiry Is} path parameter has expired.</td><td><h4>TEAOIR</h4></td><td><samp>2c35d19e-bcaf-4146-a544-e11ba19f62e3</samp></td></tr>  <tr align="center"><td  align="left">The maximum time in order to authenticate the consumer has been reached. The not authenticated inquiry request token associated with the {inquiryId} path parameter has expired.</td><td><h4>TENAEIR</h4></td><td><samp>88da1f56-083a-4a60-aefe-060ffb7eeee8</samp></td></tr>  <tr align="center"><td  align="left">The customer has consumed the response payload associated with the bank data aggregation inquiry regardless of the outcome of the notification process.</td><td><h4>CI</h4></td><td><samp>b686be8f-e59a-4c5c-871e-359ff7c543ec</samp></td></tr></table>'
      tags:
        - 'ADA - API for Bank Data Aggregation'
      operationId: 'getInquiry'
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      responses:
        '200':
          description: 'OK - Returns the bank data aggregation process information.'
          headers:
            x-signature:
              type: 'string'
              description: 'HTTP API response payload signature, this header contain the digital signature of the payload response from the API, this must be used to validate the authenticity of the response.'
            x-iv:
              type: 'string'
              description: 'Initialization Vector you will use to decrypt the payload of the banking information.'
          schema:
            $ref: '#/definitions/AckSuccessADAConsumption'
        '400':
          description: 'Bad request.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "400"
                  message: "Missign parameters {x-api-key}."
        '401':
          description: 'Unauthorized.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '401.1'
                  message: 'Unauthorized, invalid x-api-key.'
                - code: '401.2'
                  message: 'Unauthorized, invalid credentials.'
                - code: '401.3'
                  message: 'Unauthorized, you do not have the product.'
                - code: '401.4'
                  message: 'Unauthorized, you do not have access to the resource.'
        '403':
          description: 'Forbidden.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '403.1'
                  message: 'We could not verify the signature, x-signature is invalid.'
        '404':
          description: 'Inquiry not found.'
          schema:
            $ref: '#/definitions/AckFailureADAConsumption'
          examples:
            application/json:
              acknowledgeId: 45f53c81-04e0-42df-abd8-de217e2edf2a
              dateTime: '2020-09-01T03:36:38Z'
              operation: consume
              message: The request has been consumed.
              bankDataAggregation:
                errors:
                - code: '400'
                  message: The inquiry does not exist.
                request:
                  bankDataAggregationRequestId: 23fa2ec7-3294-4aa4-ba65-a0f49a75bfc4
                  subscriptionId: 51752e30-eab2-4368-a4eb-ce5a34d90f04
                  inquiryId: a99c3501-7b3a-4b3e-8ca5-1e48225b8176
                  curp: PUPJ970229HDFZZG61
                  categorization: 'false'
                  inquiryStatus: DN
                  successCheck: false
        '410':
          description: 'Gone -  The maximum time in order to obtain the payload has expired.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
                errors:
                  - code: "410"
                    message: "The maximum time in order to obtain the payload has expired."
        '425':
          description: 'Too early - The bank data aggregation process associated with the {inquiryId} path parameter has not yet been completed.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
                errors:
                  - code: "425"
                    message: "The bank data aggregation process associated with the {inquiryId} path parameter has not yet been completed."
        '429':
          description: 'Too many requests.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "429"
                  message: "Too many requests."
        '500':
          description: "Internal server error."
          schema:
            $ref: '#/definitions/AckFailureADAConsumption'
          examples:
            application/json:
              acknowledgeId: 6a2224ec-1e48-4bbd-ba2c-1971dd783735
              dateTime: '2020-09-01T05:32:41Z'
              operation: consume
              message: The request has been consumed.
              bankDataAggregation:
                errors:
                  - code: "500"
                    message: "There was an unexpected error, try again later."
                  - code: '500.1'
                    message: "The request could not be processed."
                request:
                  bankDataAggregationRequestId: d029a1ba-3566-4361-834a-f44add8cc4f7
                  subscriptionId: 51752e30-eab2-4368-a4eb-ce5a34d90f04
                  inquiryId: 43d21139-e1fa-4768-8b78-79aa3ca1993f
                  curp: PUPJ970229HDFZZG70
                  categorization: 'false'
                  inquiryStatus: RCVIR
                  successCheck: false
        '503':
          description: "Service unavailable."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "503"
                  message: "Service unavailable."
  '/bankdataaggregations':
    parameters:
      - $ref: '#/parameters/x-api-key'
    get:
      summary: 'Returns the list of bank data aggregation processes you have requested.'
      description: 'Returns the list of bank data aggregation processes you have requested. You could filter the rows by date using the {startAt} and {endAt} parameters. You could filter the rows by inquiry status using the {inquiryStatus} parameter and the process result using the {sucessCheck} parameter. You could use the {page} and {perPage} parameters in order to navigate through the list.'
      tags:
        - 'ADA - API for Bank Data Aggregation'
      operationId: 'getBankDataAggregations'
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      parameters:
        - $ref: '#/parameters/page'
        - $ref: '#/parameters/perPage'
        - $ref: '#/parameters/startAt'
        - $ref: '#/parameters/endAt'
        - $ref: '#/parameters/inquiryStatus'
        - $ref: '#/parameters/successCheck'
      responses:
        '200':
          description: 'OK - Returns a bank data aggregation processes list.'
          schema:
            $ref: '#/definitions/BankDataAggregationMetadata'
        '400':
          description: 'Bad request.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "400"
                  message: "Missign parameters {x-api-key}."
        '401':
          description: 'Unauthorized.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '401.1'
                  message: 'Unauthorized, invalid x-api-key.'
                - code: '401.2'
                  message: 'Unauthorized, invalid credentials.'
                - code: '401.3'
                  message: 'Unauthorized, you do not have the product.'
                - code: '401.4'
                  message: 'Unauthorized, you do not have access to the resource.'
        '403':
          description: 'Forbidden.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '403.1'
                  message: 'We could not verify the signature, x-signature is invalid.'
        '404':
          description: 'Not found.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
                errors:
                  - code: "404"
                    message: "Page not found."
        '429':
          description: 'Too many requests.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "429"
                  message: "Too many requests."
        '500':
          description: "Internal server error."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "500"
                  message: "There was an unexpected error, try again later."
        '503':
          description: "Service unavailable."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "503"
                  message: "Service unavailable."
    post:
      summary: 'Requests a bank data aggregation inquiry.'
      description: '<p>Request a person bank data aggregation process.</p><p>The Sandbox environment has several use cases you can use to prototype your app. In this document we only have shown some of them. Please go to https://developer.circulodecredito.com.mx/en/products/ada and download the Postman Collection with the complete data set.</p><p>Note: Replace the field<samp>${subscriptionId}</samp> with your subscription, likewise replace <samp>${bankDataAggregationRequestId}</samp> with an unique UUID.</p><p><b>Sandbox Use Cases</b></p><table border="1"><tr><th width="5%">Use case number</th><th width="30%">Description</th><th width="35%">JSON request</th><th width="35%">Credentials</th></tr><tr><td align="center">1</td><td>The person has two accounts shown in the home banking application.</td><td><samp>{"curp": "SEPJ910101HVZNNL67", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "BBVA Bancomer - Clientes"<br>username: "JUAN67"<br>password: "CIRCULO567"<br>password_2FA: "456889"</p></td></tr><tr><td align="center">2</td><td>The person has only wrong password authentication.</td><td><samp>{"curp": "DIPJ910101HVZNNL16", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td></td></tr><tr><td align="center">3</td><td>The person has four accounts shown in the home banking application.</td><td><samp>{"curp": "SEPJ910101HVZNNL65", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "BanCoppel - Personas"<br>username: "JUAN65"<br>password: "CIRCULO569"<br>password_2FA: "6588"</p></td></tr><tr><td align="center">4</td><td>The person has only one account shown in the home banking application.</td><td><samp>{"curp": "TRPJ910101HVZNNL38", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "BanCoppel - Personas"<br>username: "JUAN38"<br>password: "CIRCULO571"<br>password_2FA: "4448"</p></td></tr><tr><td align="center">5</td><td>The person has only one account shown in the home banking application.</td><td><samp>{"curp": "CUPJ910101HVZNNL44", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "Afirme - Personas"<br>username: "JUAN44"<br>password: "CIRCULO572"<br>password_2FA: "55466"</p></td></tr><tr><td align="center">6</td><td>The person has only one account shown in the home banking application.</td><td><samp>{"curp": "SEPJ910101HVZNNL66", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "BBVA Bancomer - Clientes"<br>username: "JUAN66"<br>password: "CIRCULO573"<br>password_2FA: "55685"</p></td></tr><tr><td align="center">7</td><td>The person has two accounts shown in the home banking application.</td><td><samp>{"curp": "TRPJ910101HVZNNL32", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "BanCoppel - Personas"<br>username: "JUAN32"<br>password: "CIRCULO574"<br>password_2FA: "55887"</p></td></tr><tr><td align="center">8</td><td>The person has only one account shown in the home banking application.</td><td><samp>{"curp": "CUPJ910101HVZNNL48", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "Afirme - Personas"<br>username: "JUAN48"<br>password: "CIRCULO575"<br>password_2FA: "47889"</p></td></tr><tr><td align="center">9</td><td>The person has three accounts shown in the home banking application.</td><td><samp>{"curp": "TRPJ910101HVZNNL37", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "Afirme - Personas"<br>username: "JUAN37"<br>password: "CIRCULO575"<br>password_2FA: "54578"</p></td></tr><tr><td align="center">10</td><td>The person has two accounts shown in the home banking application.</td><td><samp>{"curp": "EÑPJ910101HVZNNL00", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "BanCoppel - Personas"<br>username: "JUANÑ"<br>password: "CIRCULO577"<br>password_2FA: "54785"</p></td></tr><tr><td align="center">11</td><td>The person has only one account shown in the home banking application.</td><td><samp>{"curp": "TRPJ910102HVZNNL37", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "Afirme - Personas"<br>username: "JUAN37"<br>password: "CIRCULO578"<br>password_2FA: "55569"</p></td></tr><tr><td align="center">12</td><td>The person has only one account shown in the home banking application.</td><td><samp>{"curp": "ONPJ910101HVZNNL11", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "Afirme - Personas"<br>username: "JUAN11"<br>password: "CIRCULO579"<br>password_2FA: "55215"</p></td></tr><tr><td align="center">13</td><td>The person has two accounts shown in the home banking application.</td><td><samp>{"curp": "CIPJ910101HVZNNL56", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"}</samp></td><td>Bank: "BBVA Bancomer - Clientes"<br>username: "JUAN56"<br>password: "CIRCULO580"<br>password_2FA: "55225"</p></td></tr></table>'
      tags:
        - 'ADA - API for Bank Data Aggregation'
      operationId: 'postBankDataAggregation'
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      parameters:
        - in: 'body'
          name: 'request'
          description: 'Input parameters in order to start a bank data aggregation process.'
          required: true
          schema:
            $ref: '#/definitions/BankDataAggregation'
      responses:
        '200':
          description: 'OK - Returns an bank data request acknowledge.'
          schema:
            $ref: '#/definitions/AckADARequest'
        '400':
          description: 'Bad request.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "400"
                  message: "Missign parameters {bankDataAggregationRequestId, subscriptionId, curp, categorization}"
        '401':
          description: 'Unauthorized.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '401.1'
                  message: 'Unauthorized, invalid x-api-key.'
                - code: '401.2'
                  message: 'Unauthorized, invalid credentials.'
                - code: '401.3'
                  message: 'Unauthorized, you do not have the product.'
                - code: '401.4'
                  message: 'Unauthorized, you do not have access to the resource.'
        '403':
          description: 'Forbidden.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '403.1'
                  message: 'We could not verify the signature, x-signature is invalid.'
        '429':
          description: 'Too many requests.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "429"
                  message: "Too many requests."
        '500':
          description: "Internal server error."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "500"
                  message: "There was an unexpected error, try again later."
        '503':
          description: "Service unavailable."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "503"
                  message: "Service unavailable."
  '/configurations':
    parameters:
      - $ref: '#/parameters/x-api-key'
    post:
      summary: 'Set the customization page.'
      description: '<p>You can define the text and icons that will be display.</p><ol><li>Principal page elements</li><li>Each element description as its icons.</li><li>Terms and conditions text.</li><li>Two Factor authetication page, only if it is neccessary.</li></ol><p><b>Note:</b> Check the description of each element for more information.</p>'
      tags:
        - 'ADA - API for Bank Data Aggregation'
      operationId: 'postConfBankDataAggregation'
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      parameters:
        - in: 'body'
          name: 'request'
          description: 'subcriptionId and the configuration to set.'
          required: true
          schema:
            $ref: '#/definitions/BankDataAggregationConfiguration'
      responses:
        '200':
          description: 'OK - Returns an bank data request acknowledge.'
          schema:
            $ref: '#/definitions/AckBankDataAggregation'
        '400':
          description: 'Bad request.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "400.1"
                  message: "Incorrect data in the request."
        '401':
          description: 'Unauthorized.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '401.1'
                  message: 'Unauthorized, invalid x-api-key.'
                - code: '401.2'
                  message: 'Unauthorized, invalid credentials.'
                - code: '401.3'
                  message: 'Unauthorized, you do not have the product.'
                - code: '401.4'
                  message: 'Unauthorized, you do not have access to the resource.'
        '403':
          description: 'Forbidden.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '403.1'
                  message: 'We could not verify the signature, x-signature is invalid.'
        '404':
          description: 'Not found.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '403.1'
                  message: 'The subscriptionId does not exist.'
        '429':
          description: 'Too many requests.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "429"
                  message: "Too many requests."
        '500':
          description: "Internal server error."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "500"
                  message: "There was an unexpected error, try again later."
        '503':
          description: "Service unavailable."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "503"
                  message: "Service unavailable."
  '/configurations/{subscriptionId}':
    parameters:
      - $ref: '#/parameters/x-api-key'
      - $ref: '#/parameters/subscriptionId'
    get:
      summary: 'Returns the bank data aggregation process payload.'
      description: ''
      tags:
        - 'ADA - API for Bank Data Aggregation'
      operationId: 'getConfBankDataAggregation'
      consumes:
        - 'application/json'
      produces:
        - 'application/json'
      responses:
        '200':
          description: 'OK - Returns the bank data aggregation process information.'
          schema:
            $ref: '#/definitions/BankDataAggregationConfigurationResponse'
        '400':
          description: 'Bad request.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "400.2"
                  message: "Path variable not valid (uuid)"
        '401':
          description: 'Unauthorized.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '401.1'
                  message: 'Unauthorized, invalid x-api-key.'
                - code: '401.2'
                  message: 'Unauthorized, invalid credentials.'
                - code: '401.3'
                  message: 'Unauthorized, you do not have the product.'
                - code: '401.4'
                  message: 'Unauthorized, you do not have access to the resource.'
        '403':
          description: 'Forbidden.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '403.1'
                  message: 'We could not verify the signature, x-signature is invalid.'
        '404':
          description: 'Not found.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: '403.1'
                  message: 'The subscriptionId does not exist.'
        '429':
          description: 'Too many requests.'
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "429"
                  message: "Too many requests."
        '500':
          description: "Internal server error."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "500"
                  message: "There was an unexpected error, try again later."
        '503':
          description: "Service unavailable."
          schema:
            $ref: '#/definitions/Errors'
          examples:
            application/json:
              errors:
                - code: "503"
                  message: "Service unavailable."
definitions:
  Account:
    type: object
    description: Accounts information
    properties:
        customers:
          type: array
          description: Array of customers document number
          items:
            type: string
        currency:
          type: string
          description: Account ISO 4217 Currency Code
        last_update:
          type: string
          description: Account last update. ISO 8601 date format
        bank_id:
          type: integer
          description: Account bank ID number
        balance:
          type: number
          description: Account balance. Amount in cents
          format: 'float'
        _id:
          type: string
          description: 'Account ID, IBAN number'
          pattern: ^(.*)$
        name:
          type: string
          description: Account name
        creation_date:
          type: string
          description: 'Account creation date. <br>**Format**: YYYY-MM-DDTHH:MM:SS'
        bank_name:
          type: string
          description: Account bank name
        bank_group_id:
          type: integer
          description: Account bank group ID
 
  AccountsObj:
    type: object
    properties:
      id:
        type: string
        description: Linked customer IBAN number
        pattern: ^(.*)$
      participation:
        type: string
        description: Ownership of the customer in the account
       
  AllAccounts:
    type: 'object'
    properties:
      bankId:
        description: 'Id of the bank.'
        type: 'integer'
        format: 'int32'
        example: 300
      name:
        description: 'name of the bank.'
        type: 'string'
        minLength: 2
        maxLength: 30
        example: 'BBVA Bancomer'
      accountId:
        description: 'Id of the bank account, could be only a part.'
        type: 'string'
        minLength: 2
        maxLength: 30
        example: '0000000167'
      firstMovement:
        description: 'Format based on the internet standard, RFC3339 - 5.6'
        type: 'string'
        format: 'date'
        example: '2020-11-24'
      lastMovement:
        description: 'Format based on the internet standard, RFC3339 - 5.6'
        type: 'string'
        format: 'date'
        example: '2021-1-24'
      participation:
        description: 'Format based on the internet standard, RFC3339 - 5.6'
        type: 'string'
        example: 'titular'
      currency:
        $ref: '#/definitions/CurrencyCatalogue'
      currentBalance:
        type: 'number'
        description: 'Field current balance'
        format: 'float'
        example: 5082
      balancesAvg:
        type: 'number'
        description: 'Field average balance'
        format: 'float'
        example: 9865.67
      minTotalBalance:
        type: 'number'
        description: 'Field average total balance'
        format: 'float'
        example: 6067
      maxTotalBalance:
        type: 'number'
        description: 'Field current balance'
        format: 'float'
        example: 8190.45
      totalIncomeAvg:
        type: 'number'
        description: 'Field average total income'
        format: 'float'
        example: 11137.67
      totalExpenseAvg:
        type: 'number'
        description: 'Field average total expenses'
        format: 'float'
        example: -7665.33
  AccountingSummary:
    type: 'object'
    properties:
      startDate:
        description: 'Format based on the internet standard, RFC3339 - 5.6'
        type: 'string'
        format: 'date'
        example: '2020-11-24'
      endDate:
        description: 'Format based on the internet standard, RFC3339 - 5.6'
        type: 'string'
        format: 'date'
        example: '2021-2-19'
      firstMovement:
        description: 'Format based on the internet standard, RFC3339 - 5.6'
        type: 'string'
        format: 'date'
        example: '2020-11-24'
      lastMovement:
        description: 'Format based on the internet standard, RFC3339 - 5.6'
        type: 'string'
        format: 'date'
        example: '2021-1-24'
      currentBalance:
        type: 'number'
        description: 'Field current balance'
        format: 'float'
        example: 5082
      balancesAvg:
        type: 'number'
        description: 'Field average balance'
        format: 'float'
        example: 9865.67
      minTotalBalance:
        type: 'number'
        description: 'Field minimum total balance'
        format: 'float'
        example: 6067
      maxTotalBalance:
        type: 'number'
        description: 'Field maximum total balance'
        format: 'float'
        example: 8190.45
      totalIncomeAvg:
        type: 'number'
        description: 'Field average total income'
        format: 'float'
        example: 11137.67
      totalExpenseAvg:
        type: 'number'
        description: 'Field average total expenses'
        format: 'float'
        example: -7665.33
      summaryMonths:
        type: 'array'
        items:
          $ref: '#/definitions/MonthlyAccountingSummary'
  AckADARequest:
    description: 'Acknowledge of a bank data aggregation process.'
    type: 'object'
    properties:
      acknowledgeId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'Ackknowledge identifier (UUID).'
        readOnly: true
        example: '627aa72a-c799-4abf-b98e-0c4838af9bd5'
      dateTime:
        type: 'string'
        format: 'date-time'
        readOnly: true
        description: 'Date and time of the acknowledge. As defined by date-time - RFC3339.'
        example: '2020-04-12T22:20:50.52Z'
      operation:
        description: 'Bank data aggregation operation.'
        type: 'string'
        enum:
          - 'request'
          - 'consumption'
        readOnly: true
        example: 'request'
      message:
        type: 'string'
        maxLength: 120
        description: 'Descriptive and human-readable message.'
        readOnly: true
        example: 'The bank data aggregation request has been received.'
      qr:
        type: 'string'
        description: 'URL with the widget URL embed as QR code.'
        example: 'https://widget-qr-url'
      widget_url:
        type: 'string'
        description: 'Widget URL'
        example: 'https://widget-url'
      bankDataAggregationRequestId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'The identifier of the bank data aggregation request given by the API consumer (UUID).'
        example: '391d151f-1cac-44e7-a05b-79a1199621d6'
      subscriptionId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'The API Hub event subscription identifier (UUID).'
        example: '7c8a0230-36e0-43f4-9b7a-581dc55ea9c3'
      inquiryId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'The bank data aggregation process identifier given by Círculo de Crédito.'
        example: 'a19fb6b8-2677-44f2-9cd7-3b2f78bb6f8c'
        readOnly: true
  AckBankDataAggregation:
    properties:
      acknowledgeId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'Ackknowledge identifier (UUID).'
        readOnly: true
        example: '627aa72a-c799-4abf-b98e-0c4838af9bd5'
      dateTime:
        type: 'string'
        format: 'date-time'
        readOnly: true
        description: 'Date and time of the acknowledge. As defined by date-time - RFC3339.'
        example: '2020-04-12T22:20:50.52Z'
      operation:
        description: 'Bank data aggregation operation.'
        type: 'string'
        enum:
          - 'request'
          - 'consumption'
        readOnly: true
        example: 'request'
      message:
        type: 'string'
        maxLength: 120
        description: 'Descriptive and human-readable message.'
        readOnly: true
        example: 'The bank data aggregation request has been received.'
  AckFailureADAConsumption:
    description: 'Acknowledge of an unsuccessful bank data aggregation process.'
    type: 'object'
    allOf:
      - $ref: '#/definitions/AckBankDataAggregation'
    properties:
      bankDataAggregation:
        $ref: '#/definitions/FailureADAConsumption'
  AckSuccessADAConsumption:
    description: 'Acknowledge of a successful bank data aggregation process.'
    type: 'object'
    allOf:
      - $ref: '#/definitions/AckBankDataAggregation'
    properties:
      bankDataAggregation:
        $ref: '#/definitions/SuccessADAConsumption'
  BankDataAggregation:
    description: 'Bank data aggregation information'
    type: 'object'
    allOf:
      - $ref: '#/definitions/BankDataAggregationId'
    required:
      - 'bankDataAggregationRequestId'
      - 'subscriptionId'
      - 'curp'
      - 'categorization'
    properties:
      curp:
        type: 'string'
        minLength: 18
        maxLength: 18
        description: 'Clave Única de Registro de población for its initials in Spanish (CURP)'
        example: 'BADD110313HCMLNS09'
      categorization:
        type: 'string'
        description: 'categorization description'
        pattern: '^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$'
        example: 'false'
      inquiryStatus:
        type: 'string'
        description: 'Inquiry status.'
        enum: ["WAOIR", "NAOIR", "AOIR", "TEAOIR", "TEIR", "TENAEIR", "AEIR", "NAEIR", "NAEIRMR", "RJTIR", "RCVIR", "SN", "DN", "NDN", "CI", "EI"]
        example: 'DN'
        readOnly: true
      successCheck:
        description: 'It is true if the bank data aggregation process ended successfully.'
        type: 'boolean'
        example: true
        readOnly: true
  BankDataAggregations:
    description: 'A list of bank data aggregation processes.'
    type: 'array'
    items:
      $ref: '#/definitions/BankDataAggregation'
  BankDataAggregationId:
    description: 'Identifier of the bank data aggregation process.'
    type: 'object'
    properties:
      bankDataAggregationRequestId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'The identifier of the bank data aggregation request given by the API consumer (UUID).'
        example: '391d151f-1cac-44e7-a05b-79a1199621d6'
      subscriptionId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'The API Hub event subscription identifier (UUID).'
        example: '7c8a0230-36e0-43f4-9b7a-581dc55ea9c3'
      inquiryId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'The bank data aggregation process identifier given by Círculo de Crédito.'
        example: 'a19fb6b8-2677-44f2-9cd7-3b2f78bb6f8c'
        readOnly: true
  BankDataAggregationConfiguration:
    type: 'object'
    description: 'Bank data Agregation configuration'
    properties:
      subscriptionId:
        type: 'string'
        format: 'uuid'
        minLength: 36
        maxLength: 36
        description: 'The API Hub event subscription identifier (UUID).'
        example: '7c8a0230-36e0-43f4-9b7a-581dc55ea9c3'
      configuration:
        $ref: '#/definitions/ConfigurationRequest'
  BankDataAggregationConfigurationResponse:
    description: 'Acknowledge of a successful bank data aggregation process.'
    type: 'object'
    allOf:
      - $ref: '#/definitions/AckBankDataAggregation'
    properties:
      configuration:
        $ref: '#/definitions/ConfigurationRequest'
  BankDataAggregationMetadata:
    description: 'Metadata (paging information) of the list of bank data aggregation processes.'
    type: 'object'
    properties:
      _metadata:
        $ref: '#/definitions/Metadata'
      inquiries:
        $ref: '#/definitions/BankDataAggregations'

  Card:
    type: object
    properties:
      _id:
        type: integer
        description: Unnax ID for the card
      partial_card_number:
        type: string
        description: Card PAN (last 4 digits)
      account:
        type: string
        description: Account linked to the card if available
      bank_id:
        type: integer
        description: Associated card bank ID number
      bank_name:
        type: string
        description: Associated card bank name
      currency:
        type: string
        description: Card ISO 4217 Currency Code
      name:
        type: string
        description: Card name
      credit_available:
        type: number
        description: Card available credit. Amount in cents
        format: 'float'
      credit_limit:
        type: number
        description: Card limit. Amount in cents
        format: 'float'
      type:
        type: integer
        description: |-
          ID of the card type:
          <br>debit = 0
          <br>credit = 1
          <br>charge = 2 (prepaid card)
        enum:
          - 0
          - 1
          - 2
      network:
        type: string
        description: 'Card brand (VISA, Mastercard, etc)'
      creation_date:
        type: string
        description: 'Card creation date if available. <br>**Format**: YYYY-MM-DD'
        format: date
      expiration_date:
        type: string
        description: 'Card expiration date if available. <br>**Format**: YYYY-MM-DD'
        format: date
      active:
        type: boolean
        description: Card status. Active = true
      last_update:
        type: string
        description: 'Card last update date. <br>**Format**: YYYY-MM-DD'
      period_ending_date:
        type: string
        description: Period ending date (Fecha de corte)
      payment_due_date:
        type: string
        description: Payment due date (Fecha límite de pago)
      minimum_payment:
        type: number
        description: Minimum payment to avoid arrears
        format: 'float'
      payment_to_avoid_interest:
        type: number
        description: Total payment up to the period ending date. (Adeudado al corte)
        format: 'float'
    
  CurrencyCatalogue:
    type: 'string'
    description: '<table><thead><tr><th>Value</th><th>Currency</th></tr></thead><tbody><tr><td>MX</td><td>Mexican Pesos</td></tr><tr><td>US</td><td>Dollars</td></tr><tr><td>UD</td><td>investment units</td></tr></tbody></table>'
    minLength: 2
    maxLength: 2
    example: 'MX'
    enum:
      - 'MX'
      - 'US'
      - 'UD'
 
  Customer:
    type: object
    properties:
      _id:
        type: string
        description: Customer document id
      address:
        type: array
        description: Array of customer address
        items:
          type: string
      document:
        type: string
        description: Customer document id
      birth_date:
        type: string
        description: 'Customer birth date. <br>**Format**: YYYY-MM-DD'
      names:
        type: string
        description: Customer full name
      phones:
        type: array
        description: Array of phone numbers
        items:
          type: string
      emails:
        type: array
        description: Array of customer email
        items:
          type: string
      accounts_obj:
        type: array
        items:
          $ref: '#/definitions/AccountsObj'

  ConfigurationRequest:
    type: 'object'
    description: 'Gives you the availability of custom the main page as you want according to your needs.'
    properties:
      principal:
        $ref: '#/definitions/ConfigurationRequest_Principal'
      descriptions:
        $ref: '#/definitions/ConfigurationRequest_Descriptions'
      terms_and_conditions:
        $ref: '#/definitions/ConfigurationRequest_Terms_and_conditions'
      success_info:
        $ref: '#/definitions/ConfigurationRequest_Success_info'
      twoFa:
        $ref: '#/definitions/ConfigurationRequest_2fA'
      login_screen:
        $ref: '#/definitions/ConfigurationRequestLoginScreen'
  ConfigurationRequest_Principal:
    type: 'object'
    description: ''
    properties:
      user_name:
        type: 'string'
        description: 'Commercial name that will be display below the card title.'
        example: 'Círculo de Crédito'
      authorization_statement:
        type: 'string'
        description: 'Text shown next to the commercial name.'
        example: 'INT (CIF: ) solicita su permiso para realizar las siguientes acciones:'
      user_logo:
        type: 'string'
        description: 'Contains the base64 value of the logo, it is necessary begin with "data:image/png;base64, "'
        pattern: '(http(s?):)|([/|.|\w|\s])*\.(?:png|jpg|jpeg|gif|png|svg)'
        example: 'data:image/png;base64,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'
      primary_color:
        type: 'string'
        description: 'An hexadecimal value that contains the primary colour of th page.'
        pattern: '^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'
        example: '#0E1D36'
      secondary_color:
        type: 'string'
        description: 'An hexadecimal value that contains the secondary colour of th page.'
        pattern: '^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'
        example: '#ECB330'
      third_color:
        type: 'string'
        description: 'An hexadecimal value that contains the third color'
        pattern: '^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'
        example: '#ECB330'
      fourth_color:
        type: 'string'
        description: 'An hexadecimal value that contains the third color'
        pattern: '^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'
        example: '#ECB330'
  ConfigurationRequest_Descriptions:
    type: 'object'
    description: ''
    properties:
      first_highlighted_icon:
        $ref: '#/definitions/Icons'
      first_highlighted_text:
        type: 'string'
        description: 'First text in the card body.'
        example: 'Cumplimos con la directiva Europea PSD2.'
      second_highlighted_icon:
        $ref: '#/definitions/Icons'
      second_highlighted_text:
        type: 'string'
        description: 'Second text in the card body.'
        example: 'Sus datos son encriptados con la última tecnología.'
      third_highlighted_icon:
        $ref: '#/definitions/Icons'
      third_highlighted_text:
        type: 'string'
        description: 'Third text in the card body.'
        example: 'Sus datos personales están regulados por la Ley Orgánica de Protección de Datos de Carácter Personal (GDPR).'
      fourth_highlighted_icon:
        $ref: '#/definitions/Icons'
      fourth_highlighted_text:
        type: 'string'
        description: ''
        example: 'Entra con tus credenciales de acceso al banco para completar el proceso.'
  ConfigurationRequest_Terms_and_conditions:
    type: 'object'
    description: ''
    properties:
      terms_and_conditions_label:
        type: 'string'
        description: 'Text that will be display as link to open the modal that contains the terms and conditions.'
        example: 'Al continuar, acepto y confirmo que he leido los terminos y condiciones. Que los entiendo, acepto y quedo vinculado por ellos'
      terms_and_conditions_title:
        type: 'string'
        description: 'Text of terms and conditions, that will be display when the modal is open.'
        example: 'Terminos y condiciones'
      terms_and_conditions:
        type: 'string'
        description: ''
        example: '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vehicula tellus sed faucibus lacinia. Aenean faucibus, est in sollicitudin dapibus, justo velit venenatis magna, et aliquet lacus turpis sed nisl. Vestibulum maximus ante mi, vitae congue ipsum mollis vitae. Integer non sem ornare, hendrerit risus in, egestas tellus. Nam orci lectus, scelerisque nec commodo nec, suscipit ut nisl. Ut eu euismod erat, a dictum mi. Etiam aliquam neque nec hendrerit faucibus. Phasellus placerat finibus porta.</p><p>Nunc faucibus arcu nec metus euismod congue. Maecenas rutrum justo elit. Nunc viverra elementum semper. Proin scelerisque, sem id aliquam semper, erat orci volutpat leo, eget suscipit lectus velit id velit. Proin mattis in quam nec tristique. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nam ut mi ligula.</p><p>Pellentesque elementum neque et dui consequat convallis. Aliquam blandit non urna vel ultrices. Curabitur viverra gravida nunc eu auctor. Maecenas ac efficitur enim. Etiam molestie id nulla ut volutpat. Praesent eu dui ac sem volutpat commodo. Suspendisse convallis cursus mollis. Suspendisse condimentum lorem varius, pharetra neque sed, mattis arcu. In feugiat, nibh ac vestibulum varius, libero risus tempus nulla, sed convallis nulla neque ut velit. Mauris sed metus ligula. Vivamus molestie vehicula felis, nec aliquet justo rutrum sit amet. Pellentesque et efficitur tellus, in pretium sem. Donec euismod orci nisl, ut imperdiet risus fringilla eget. Aliquam accumsan et ipsum sed convallis. Curabitur eros nisi, porta ac lorem vel, viverra venenatis mauris.</p><p>Fusce aliquet turpis sed dui luctus molestie. Maecenas eget metus dignissim, consequat orci eget, gravida augue. Sed porttitor nibh erat, eu tempor enim pharetra in. Sed vehicula, dolor id ultricies faucibus, nunc erat elementum mi, in gravida augue elit quis libero. Nulla ac ex et tortor dictum iaculis fringilla id quam. In feugiat leo vel est iaculis, non accumsan purus gravida. Vivamus orci augue, dignissim ac pulvinar sit amet, blandit pulvinar ante. Suspendisse pellentesque nibh eget dignissim faucibus. Pellentesque eu pellentesque tortor. Fusce efficitur ligula ligula.</p><p>Aenean rhoncus elit id nibh porttitor, in dictum lectus porttitor. Mauris metus nulla, rhoncus at odio in, mollis porta urna. Sed vestibulum eros malesuada nulla varius, sit amet viverra est consectetur. Cras fringilla ornare sagittis. Ut et erat eu odio pulvinar dapibus nec sit amet risus. Nam blandit mollis urna, quis tincidunt diam ultricies non. Suspendisse id libero suscipit, viverra ligula nec, viverra odio.</p>'
      terms_and_conditions_hidden:
        type: 'boolean'
        description: 'Flag to enable/disable the the Terms And Conditions view in the UI'
        example: true
  ConfigurationRequest_Success_info:
    type: 'object'
    description: ''
    properties:
      success_info_label:
        type: 'string'
        description: 'Text that will be displayed as link to open the mail with the PDF report.'
        example: 'Continúa con el paso 2'
      success_info_title:
        type: 'string'
        description: 'Addintional text for Step 2 description.'
        example: 'desde el correo de confirmación'
      success_footer:
        type: 'string'
        description: 'Text for the footer section of the widget'
        example: 'Su solicitud ha finalizado exitosamente.'
      show_bank_logo:
        type: 'boolean'
        description: 'Flag to enable/disable the bank logo in the login success section of the widget'
      show_close_button:
        type: 'boolean'
        description: 'Flag to enable/disable the close button in the login success section of the widget'
      success_image:
        type: 'string'
        description: 'The image that is shown in the login success section of the widget'
        example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkEAAABlCAYAAABKpjekAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAOrdJREFUeNrsfQeUHeWV5n39XqtbLamVM0IRIU'
  ConfigurationRequest_2fA:
    type: 'object'
    description: ''
    properties:
      twoFa_highlighted_icon:
        $ref: '#/definitions/Icons'
      twoFa_highlighted_text:
        type: 'string'
        description: ''
        example: 'Confirme la transacción introduciendo el código'
  ConfigurationRequestLoginScreen:
    type: 'object'
    description: 'Configuration object for bank login widget section'
    properties:
      title:
        type: 'string'
        description: 'Bank login title'
        example: 'Bank Login'
      label:
        type: 'string'
        description: 'Bank login brief text description'
      show_bank_logo:
        type: 'boolean'
      show_trust_badges:
        type: 'boolean'
  Error:
    type: 'object'
    description: 'Error'
    readOnly: true
    properties:
      code:
        type: 'string'
        description: 'Error code.'
        example: '400'
      message:
        type: 'string'
        maxLength: 120
        description: 'Descriptive and human-readable error message.'
        example: 'External data source not available.'
  Errors:
    description: 'A list of errors.'
    type: 'object'
    properties:
      errors:
        description: 'List of errors.'
        type: 'array'
        items:
          $ref: '#/definitions/Error'
  FailureADAConsumption:
    description: 'Information about a failed bank data aggregation process.'
    type: 'object'
    properties:
      request:
        $ref: '#/definitions/BankDataAggregation'
      errors:
        description: 'List of errors.'
        type: 'array'
        items:
          $ref: '#/definitions/Error'
  Icons:
    description: 'A set of the icons available.'
    type: 'string'
    enum: ['fas fa-cog','far fa-star','fas fa-star','fas fa-user','fas fa-user-shield','fas fa-user-lock','fas fa-key','far fa-comment-dots','fas fa-edit','fas fa-credit-card']
    example: 'far fa-star'
  Links:
    description: 'Pagination information.'
    type: 'object'
    properties:
      self:
        description: 'URL of this page.'
        type: 'string'
        readOnly: true
        example: 'https://services.circulodecredito.com.mx/v1/ada/bankdataaggregations?page=7&perPage=15'
      first:
        description: 'URL of the first page.'
        type: 'string'
        readOnly: true
        example: 'https://services.circulodecredito.com.mx/v1/ada/bankdataaggregations?page=1&perPage=15'
      previous:
        description: 'URL of the previous page.'
        type: 'string'
        readOnly: true
        example: 'https://services.circulodecredito.com.mx/v1/ada/bankdataaggregations?page=6&perPage=15'
      next:
        description: 'URL of the next page.'
        type: 'string'
        readOnly: true
        example: 'https://services.circulodecredito.com.mx/v1/ada/bankdataaggregations?page=8&perPage=15'
      last:
        description: 'URL of the last page.'
        type: 'string'
        readOnly: true
        example: 'https://services.circulodecredito.com.mx/v1/ada/bankdataaggregations?page=12&perPage=15'
  Metadata:
    description: 'Pagination information.'
    type: 'object'
    properties:
      page:
        type: 'integer'
        description: 'Current page.'
        readOnly: true
        example: 7
      perPage:
        type: 'integer'
        description: 'Rows per page.'
        readOnly: true
        example: 15
      pageCount:
        type: 'integer'
        description: 'Total number of pages.'
        readOnly: true
        example: 12
      totalCount:
        type: 'integer'
        description: 'Total number of rows.'
        readOnly: true
        example: 175
      links:
        $ref: '#/definitions/Links'
  MonthlyAccountingSummary:
    type: 'object'
    properties:
      date:
        description: 'Sumary date'
        type: 'string'
        example: '2020-11'
      avgBalance:
        type: 'number'
        description: 'Field average balance'
        format: 'float'
        example: 9865.67
      minBalance:
        type: 'number'
        description: 'Field minimum balance'
        format: 'float'
        example: 6067
      maxBalance:
        type: 'number'
        description: 'Field maximum balance'
        format: 'float'
        example: 8190.45
      totalIncome:
        type: 'number'
        description: 'Field total income'
        format: 'float'
        example: 11137.67
      totalExpense:
        type: 'number'
        description: 'Field total expenses'
        format: 'float'
        example: -7665.33
      transactions: 
        type: number
        description: total transactions
        example: 1
  Person:
    type: 'object'
    description: 'Encrypted Bank Information.'
    readOnly: true
    properties:
      customers:
        description: 'List of customers.'
        type: 'array'
        items:
          $ref: '#/definitions/Customer'
      cards:
        description: 'List of cards.'
        type: 'array'
        items:
          $ref: '#/definitions/Card'
      accounts:
        description: 'List of accounts.'
        type: 'array'
        items:
          $ref: '#/definitions/Account'    
      summary:
        $ref: '#/definitions/AccountingSummary'
  SuccessADAConsumption:
    description: 'Information about a successful bank data aggregation process.'
    type: 'object'
    properties:
      request:
        $ref: '#/definitions/BankDataAggregation'
      payload:
        description: 'Payload encrypt'
        example: 'OR8BkEcX/i+DQ2IxMkT2nmII3V8yvm1MInlQrBX4NcgmIA=='
      #person:
        #$ref: '#/definitions/Person'