swagger: '2.0'
info:
description: "This API simulates the aggregation of bank data from a source.

"
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: 'Returns the bank data aggregation process payload associated with the inquiry. The inquiry is identified by the {inquiryId} path parameter.
Remember the inquiry status of every bank data aggregation process gives you more information about the process stage.
Inquiry Status
Waiting Authorization for Inquiry Request | WAOIR | 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. |
Not Authorized Inquiry Request | NAOIR | The consumer has refused the authorization for the bank data aggregation inquiry request. |
Authorized Inquiry Request | AOIR | 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. |
Authenticated Inquiry Request | AEIR | The consumer has been authenticated in the source. |
Not Authenticated Inquiry Request | NAEIR | The consumer has not been authenticated in the source. Círculo de Crédito is waiting for a new authentication attempt. |
Not Authenticated Inquiry Request and Maximum Number of Unsuccessful Login Attempts Reached | NAEIRMR | The consumer has not been authenticated in the source and the maximum number of unsuccessful login attempts has reached. |
Received Inquiry Request | RCVIR | 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. |
Rejected Inquiry Request | RJTIR | Círculo de Crédito could not begin the bank data aggregation process. The bank data aggregation inquiry process has been halted. |
Inquiry Request Token Expired | TEIR | 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. |
Authorized Inquiry Request Token Expired | TEAOIR | The consumer has authorized the bank data aggregation inquiry request but the maximum time in order to authenticate him has been reached. |
Not Authenticated Inquiry Request Token Expired | TENAEIR | 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. |
Sending Notification | SN | 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. |
Delivered Notification | DN | 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. |
Not Delivered Notification | NDN | 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. |
Consumed Inquiry | CI | The customer has consumed the response payload associated with the inquiry regardless of the outcome of the notification process. |
Expired Inquiry | EI | The inquiry and the associated result have been archived. Only inquiries that have been made in the last 30 days will be shown. |
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.
You could get the payload from different inquiries in different bank data aggregation process stages (Inquiry Status).
Sandbox Use Cases
Use case | Inquiry Status | InquiryId |
Círculo de Crédito is waiting for consumer authorization for the bank data aggregation inquiry process associated with the {inquiryId}. | WAOIR | a3b914e9-c0fb-485a-ab46-a82f29560f3e |
The consumer has not authorized Círculo de Crédito to begin the bank data aggregation process associated with the {inquiryId} path parameter. | NAOIR | 09571e9d-4350-42b5-8fab-c2c304b57c0e |
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. | AOIR | df338dc4-1d71-4702-9181-c64f409342d0 |
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. | AEIR | 8ff4d198-0abf-4df9-90ca-4b3d8e23fa47 |
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. | NAEIR | 74b2f279-e9fe-4650-99f7-14f90ce91bb3 |
The consumer has not been authenticated in the source. The maximum number of unsuccessful login attempts has reached. | NAEIRMR | 1ee29873-6054-44ba-88fe-f63da2eb1d3c |
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. | RCVIR | cd021c98-761c-472c-b80f-19f3a13ac476 |
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. | RJTIR | 1b1c636d-1729-45df-8594-6de7d92131be |
The maximum time in order to authenticate the consumer has been reached. The inquiry request token associated with the {inquiryId} path parameter has expired. | TEIR | 8d62ca8c-4c8c-46c9-8d6d-f550324fa559 |
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. | TEAOIR | 2c35d19e-bcaf-4146-a544-e11ba19f62e3 |
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. | TENAEIR | 88da1f56-083a-4a60-aefe-060ffb7eeee8 |
The customer has consumed the response payload associated with the bank data aggregation inquiry regardless of the outcome of the notification process. | CI | b686be8f-e59a-4c5c-871e-359ff7c543ec |
'
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: 'Request a person bank data aggregation process.
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.
Note: Replace the field${subscriptionId} with your subscription, likewise replace ${bankDataAggregationRequestId} with an unique UUID.
Sandbox Use Cases
Use case number | Description | JSON request | Credentials |
---|
1 | The person has two accounts shown in the home banking application. | {"curp": "SEPJ910101HVZNNL67", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "BBVA Bancomer - Clientes" username: "JUAN67" password: "CIRCULO567" password_2FA: "456889" |
2 | The person has only wrong password authentication. | {"curp": "DIPJ910101HVZNNL16", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | |
3 | The person has four accounts shown in the home banking application. | {"curp": "SEPJ910101HVZNNL65", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "BanCoppel - Personas" username: "JUAN65" password: "CIRCULO569" password_2FA: "6588" |
4 | The person has only one account shown in the home banking application. | {"curp": "TRPJ910101HVZNNL38", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "BanCoppel - Personas" username: "JUAN38" password: "CIRCULO571" password_2FA: "4448" |
5 | The person has only one account shown in the home banking application. | {"curp": "CUPJ910101HVZNNL44", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "Afirme - Personas" username: "JUAN44" password: "CIRCULO572" password_2FA: "55466" |
6 | The person has only one account shown in the home banking application. | {"curp": "SEPJ910101HVZNNL66", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "BBVA Bancomer - Clientes" username: "JUAN66" password: "CIRCULO573" password_2FA: "55685" |
7 | The person has two accounts shown in the home banking application. | {"curp": "TRPJ910101HVZNNL32", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "BanCoppel - Personas" username: "JUAN32" password: "CIRCULO574" password_2FA: "55887" |
8 | The person has only one account shown in the home banking application. | {"curp": "CUPJ910101HVZNNL48", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "Afirme - Personas" username: "JUAN48" password: "CIRCULO575" password_2FA: "47889" |
9 | The person has three accounts shown in the home banking application. | {"curp": "TRPJ910101HVZNNL37", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "Afirme - Personas" username: "JUAN37" password: "CIRCULO575" password_2FA: "54578" |
10 | The person has two accounts shown in the home banking application. | {"curp": "EÑPJ910101HVZNNL00", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "BanCoppel - Personas" username: "JUANÑ" password: "CIRCULO577" password_2FA: "54785" |
11 | The person has only one account shown in the home banking application. | {"curp": "TRPJ910102HVZNNL37", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "Afirme - Personas" username: "JUAN37" password: "CIRCULO578" password_2FA: "55569" |
12 | The person has only one account shown in the home banking application. | {"curp": "ONPJ910101HVZNNL11", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "Afirme - Personas" username: "JUAN11" password: "CIRCULO579" password_2FA: "55215" |
13 | The person has two accounts shown in the home banking application. | {"curp": "CIPJ910101HVZNNL56", "bankDataAggregationRequestId": "${bankDataAggregationRequestId}", "subscriptionId": "${subscriptionId}"} | Bank: "BBVA Bancomer - Clientes" username: "JUAN56" password: "CIRCULO580" password_2FA: "55225" |
'
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: 'You can define the text and icons that will be display.
- Principal page elements
- Each element description as its icons.
- Terms and conditions text.
- Two Factor authetication page, only if it is neccessary.
Note: Check the description of each element for more information.
'
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.
**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:
debit = 0
credit = 1
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.
**Format**: YYYY-MM-DD'
format: date
expiration_date:
type: string
description: 'Card expiration date if available.
**Format**: YYYY-MM-DD'
format: date
active:
type: boolean
description: Card status. Active = true
last_update:
type: string
description: 'Card last update date.
**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: 'Value | Currency |
---|
MX | Mexican Pesos |
US | Dollars |
UD | investment units |
'
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.
**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: '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.
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.
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.
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.
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.
'
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'