swagger: '2.0' info: description: "Bank Account Verification API.


" version: '1.0.0' title: 'Bank Account Verification API' termsOfService: 'https://developer.circulodecredito.com.mx/legal-mx' contact: email: 'api@circulodecredito.com.mx' host: 'services.circulodecredito.com.mx' basePath: '/' tags: - name: 'Bank Account Verification API' externalDocs: description: 'API Hub' url: 'https://developer.circulodecredito.com.mx/en/products/bavs' schemes: - 'https' parameters: x-api-key: in: 'header' name: 'x-api-key' description: 'The Consumer Key assigned to the application you have registered in API Hub.' required: true type: 'string' username: in: 'header' name: 'username' description: 'Username of the inquiry user.' required: true type: 'string' password: in: 'header' name: 'password' description: 'Password of the inquiry user.' required: true type: 'string' x-signature_body: in: 'header' name: 'x-signature' description: 'Signature created with your private key (SHA256withECDSA - secp384r). API Hub verifies the signature matches with the request body using your public key. Your public key must be uploaded in the API Hub Portal Applications section.' required: true type: 'string' x-signature_url: in: 'header' name: 'x-signature' description: 'Signature created with your private key (SHA256withECDSA - secp384r). API Hub verifies the signature matches with the URL using your public key. Your public key must be uploaded in the API Hub Portal Applications section.' required: true type: 'string' 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: 'integer' perPage: in: 'query' name: 'perPage' description: 'Rows per page.' required: false type: 'integer' 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: ["RI", "SN", "DN", "NDN", "CI"] required: false type: 'string' successCheck: in: 'query' name: 'successCheck' description: 'Inquiry process result.' required: false type: 'boolean' paths: '/v1/bavs/accountValidator/{inquiryId}': get: summary: 'Returns the account validator process payload.' #description: '

Returns the account validator process payload associated with the inquiry. The inquiry is identified by the {inquiryId} path parameter.

Remember the inquiry status of every validator process gives you more information about the process stage.

Inquiry Status

Received Inquiry

RI

Círculo de Crédito has received the account validator inquiry. Círculo de Crédito will begin processing it as soon as possible.

Sending Notification

SN

Círculo de Crédito has processed the inquiry. Círculo de Crédito is sending the Webhook 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 Webhook API 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 Webhook API on several times, however, it never got the acknowledge.

Consumed Inquiry

CI

You have 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. The inquiries that have the EI status are not showing.
' #description: '

Returns the account validator process payload associated with the inquiry. The inquiry is identified by the {inquiryId} path parameter.

CodeReason Process
200.6Rejected by Banxico
200.7Canceled by Banxico
200.10Received, paid and the return to the account was generated.
205.1Successful transfer without CEP generation
400.1Rejeccted due the bank
404.1The account doesnt exist, rejected by the bank
500.0Unsuccessful transaction
503.1Service Unavailable
503.2Service Unavailable
503.3The CEP has inconsistencies
503.4An error occurred while downloading the XML
508.0Success tranfer, XML not available
508.1Success transfer, limit of attempts was reached source data CEP not available
' description: '

Returns the account validator process payload associated with the inquiry. The inquiry is identified by the {inquiryId} path parameter.

CodeReason Process
200.10Received, paid and the return to the account was generated.
503.0Verification could not be completed successfully, transfer cannot be completed.
500.0Unsuccessful transaction, unexpected server error.
508.1Verification could not be completed successfully, success transfer but the receipt file was not generated in time by external entity.
503.2Service temporarily unavailable, please try again later.
' tags: - 'Bank Account Verification API' operationId: 'getAcountValidator' parameters: - $ref: '#/parameters/x-api-key' - $ref: '#/parameters/username' - $ref: '#/parameters/password' - $ref: '#/parameters/x-signature_url' - $ref: '#/parameters/inquiryId' consumes: - 'application/json' produces: - 'application/json' responses: '200': description: 'OK - Returns the employment verification process information.' schema: $ref: '#/definitions/AckSuccessEVConsumption' '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/AckFailureEVConsumption' examples: application/json: errors: - code: '404.1' message: Inquiry not found. '425': description: 'Too early - The employment verification process associated with the {inquiryId} path parameter has not yet been completed.' schema: $ref: '#/definitions/Errors' examples: application/json: errors: - code: "425" message: "The employment verification 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." '503': description: "Service unavailable." schema: $ref: '#/definitions/Errors' examples: application/json: errors: - code: "503" message: "Service unavailable." '/v1/bavs/accountValidator': post: summary: 'Requests a account validator process.' description: '

Requests a account validator process.' tags: - 'Bank Account Verification API' operationId: 'accountValidatorAPI' consumes: - 'application/json' produces: - 'application/json' parameters: - $ref: '#/parameters/x-api-key' - $ref: '#/parameters/username' - $ref: '#/parameters/password' - $ref: '#/parameters/x-signature_url' - $ref: '#/parameters/inquiryId' - in: 'body' name: 'request' description: 'Input parameters in order to start a employment verification process.' required: true schema: $ref: '#/definitions/AccountValidatorWithPrivacyNotice' responses: '200': description: 'OK - Returns an acount validator request acknowledge.' schema: $ref: '#/definitions/AckEVRequest' '400': description: 'Bad request.' schema: $ref: '#/definitions/Errors' examples: application/json: errors: - code: "400" message: "Missign parameters {fields name}" '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." - code: "422" message: "The syntax of the request entity is correct but was unable to process the contained instructions (same bank transfers does not generate CEP)." definitions: PrivacyNotice: description: 'The privacy notice the Customer must accept.' type: 'object' required: - 'acceptance' - 'address' properties: acceptanceDate: type: 'string' format: 'date-time' description: 'Date and time of the privacy notice acceptance. As defined by date-time - RFC3339.' example: '2020-04-12T22:20:50.52Z' acceptance: type: 'string' description: 'Y if the Customer has accepted the privacy notice otherwise these field must be N.' minLength: 1 maxLength: 1 enum: - 'Y' - 'N' AccountValidatorWithPrivacyNotice: description: 'Account Validator information. It must include the the privacy notice customer acceptance.' type: 'object' required: - 'accountValidator' properties: accountValidator: $ref: '#/definitions/AccountValidator' AccountValidatorId: description: 'Identifier of the account validator process.' type: 'object' properties: externalId: type: 'string' format: 'uuid' minLength: 36 maxLength: 36 description: 'The identifier of the account validator 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 account validator process identifier given by Círculo de Crédito.' example: 'a19fb6b8-2677-44f2-9cd7-3b2f78bb6f8c' readOnly: true AccountValidator: description: 'Account Validator information' type: 'object' allOf: - $ref: '#/definitions/AccountValidatorId' required: - 'externalId' - 'subscriptionId' - 'bankId' - 'accountIdentifier' - 'name' - 'identifierType' - 'accountType' - 'verifierCompany' properties: bankId: type: integer example: 40012 maximum: 99999 minimum: 1000 description: Validate bank catalog from Banxico "https://www.banxico.org.mx/cep-scl/listaInstituciones.do" accountType: description: '1 = persona fisica, 2 = persona moral' type: 'string' enum: ["1", "2"] example: "1" identifierType: description: 'Account Type "CLABE", "AccountNumber", "PhoneNumber" Phone number only to Persona Fisica.' type: 'string' enum: ["CLABE", "AccountNumber", "PhoneNumber"] example: "CLABE" accountIdentifier: description: ' Clabe or Number account of the recipient of the transaction to validate.' type: 'string' minLength: 16 maxLength: 18 example: '123456789012345678' pattern: "^[0-9]{16,18}$" name: type: 'string' minLength: 1 maxLength: 100 description: 'name or business name' example: 'Juan' pattern: '^[A-Za-z àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ& 0-9]{1,100}$' secondName: type: 'string' minLength: 1 maxLength: 100 description: 'Second name' example: 'Pruebas' pattern: '^[A-Za-z àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ 0-9]{1,100}$' lastName: description: 'last name' type: 'string' minLength: 1 maxLength: 100 example: "ocho" pattern: '^[A-Za-z àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ 0-9]{1,100}$' secondLastName: description: 'second last name' type: 'string' minLength: 1 maxLength: 100 example: "seis" pattern: '^[A-Za-z àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ 0-9]{1,100}$' citizenId: description: 'Mexican CURP' type: 'string' minLength: 18 maxLength: 18 example: "SSSS010101SSSSXXXX" pattern: "^[A-Za-z0-9]{18,18}$" taxPayerIdentificationNumber: description: |- `Mexican RFC` `** Field required when accountType = 2` type: 'string' example: "SSSS010101XXX" minLength: 10 maxLength: 13 pattern: "^[A-Za-z0-9]{10,13}$" verifierCompany: description: 'Nombre empresa verificadora sin espacios' type: 'string' example: 'Empresa1' minLength: 1 maxLength: 14 pattern: "^[A-Za-z0-9]{1,14}$" AccountValidators: description: 'A list of account validator processes.' type: 'array' items: $ref: '#/definitions/AccountValidator' AccountValidatorMetadata: description: 'Metadata (paging information) of the list of employment verification processes.' type: 'object' properties: _metadata: $ref: '#/definitions/Metadata' inquiries: $ref: '#/definitions/AccountValidators' CatalogBank: description: '
CodeBank
40138ABC CAPITAL
40133ACTINVER
40062AFIRME
90638NU MEXICO
90710NVIO
40103AMERICAN EXPRES
90659ASP INTEGRA OPC
40128AUTOFIN
40127AZTECA
37166BaBien
40030BAJIO
40002BANAMEX
40154BANCO FINTERRA
37006BANCOMEXT
40137BANCOPPEL
40160BANCO S3
40152BANCREA
37019BANJERCITO
40147BANKAOOL
40106BANK OF AMERICA
37009BANOBRAS
40072BANORTE
91872BANORTE2
40058BANREGIO
40060BANSI
40159BANK OF CHINA
2001BANXICO
40129BARCLAYS
40145BBASE
40012BBVA BANCOMER
40112BMONEX
90677CAJA POP MEXICA
90683CAJA TELEFONIST
90648CB Evercore
90630CB INTERCAM
40143CIBANCO
90631CI BOLSA
90901CLS
90903CoDi Valida
40130COMPARTAMOS
40140CONSUBANCO
90652CREDICAPITAL
90688CREDICLUB
40126CREDIT SUISSE
90680CRISTOBAL COLON
40124DEUTSCHE
40151DONDE
90606ESTRUCTURADORES
90616FINAMEX
90634FINCOMUN
90689FOMPED
90685FONDO (FIRA)
90601GBM
90636HDI SEGUROS
37168HIPOTECARIA FED
40021HSBC
40155ICBC
40036INBURSA
90902INDEVAL
40150INMOBILIARIO
40136INTERCAM BANCO
90686INVERCAP
40059INVEX
40110JP MORGAN
90653KUSPIT
90670LIBERTAD
90602MASARI
40042MIFEL
40158MIZUHO BANK
90600MONEXCB
40108MUFG
40132MULTIVA BANCO
90613MULTIVA CBOLSA
37135NAFIN
90684OPM
40148PAGATODO
90620PROFUTURO
40156SABADELL
40014SANTANDER
40044SCOTIABANK
40157SHINHAN
90646STP
90648TACTIV CB
90703TESORED
90656UNAGRA
90617VALMEX
90605VALUE
90608VECTOR
40113VE POR MAS
40141VOLKSWAGEN
' type: integer example: 40138 enum: - 40138 - 40133 - 40062 - 90638 - 40103 - 90659 - 40128 - 40127 - 37166 - 40030 - 40002 - 40154 - 37006 - 40137 - 40160 - 40152 - 37019 - 40147 - 40106 - 37009 - 40072 - 91872 - 40058 - 40060 - 2001 - 40129 - 40145 - 40012 - 40112 - 90677 - 90683 - 90648 - 90630 - 40143 - 90631 - 90901 - 90903 - 40130 - 40140 - 90652 - 40126 - 90680 - 40124 - 40151 - 90606 - 90616 - 90634 - 90689 - 90685 - 90601 - 90636 - 37168 - 40021 - 40155 - 40036 - 90902 - 40150 - 40136 - 90686 - 40059 - 40110 - 90653 - 90670 - 90602 - 40042 - 40158 - 90600 - 40108 - 40132 - 90613 - 37135 - 90684 - 40148 - 90620 - 40156 - 40014 - 40044 - 40157 - 90646 - 90656 - 90617 - 90605 - 90608 - 40113 - 40141 - 40159 - 90688 - 90710 - 90703 CatalogCodeError: description: '
CodeDescription
000Operation successful
002The message does not match the original string
010Invalid scheme
012Invalid provider
013Configuration not found
107The amount to send must be greater than zero
110The account does not have a sufficient balance to operate
113The type of operation is a required data
114The amount exceeds the maximum allowed.
126The account does not exist.
127A SPEI cannot be made to the same bank.
128Error when carrying out the charge.
129The CLABE does not meet the allowed length.
130The Telephone Number does not meet the allowed length.
131The Debt Card does not meet the allowed length.
132Account type does not exist.
133Error when processing the SPEI.
134Service not available.
135The Amount has an Incorrect format.
136Contact your supplier.
137Invalid character.
138VAT has an incorrect format.
139The Recipient Key does not match the Recipient Institution.
140The reference has expired.
141The reference does not belong to the program.
' type: 'string' example: '205.0' enum: - 000 - 002 - 010 - 012 - 013 - 107 - 110 - 113 - 114 - 126 - 127 - 128 - 129 - 130 - 131 - 132 - 133 - 134 - 135 - 136 - 137 - 138 - 139 - 140 - 141 CataloReasonProcess: description: '
CodeReason Process
404.1The account doesnt exist, rejected by the bank
400.1Rejeccted due the bank
200.10Received, paid and the return to the account was generated.
205.1Successful transfer without CEP generation
503.2Service temporarily unavailable, please try again later.
503.3The CEP has inconsistencies
503.4An error occurred while downloading the XML
200.6Rejected by Banxico
200.7Canceled by Banxico
208.0Success tranfer, XML not available
200.10Received, paid and the return to the account was generated.
208.1Successful transfer without CEP generation
' type: 'string' example: '205.1' enum: - 200.6 - 200.7 - 200.10 - 205.1 - 208.0 - 208.1 - 400.1 - 404.1 - 503.1 - 503.2 - 503.3 - 503.4 - 508.1 - 508.2 SuccessEVConsumption: description: 'Information about a successful employment verification process.' type: 'object' properties: reasonProcess: $ref: '#/definitions/ReasonProcess' request: $ref: '#/definitions/AccountValidator' verificationConfidence: type: 'number' format: 'float' description: "It is the level of confidence in the verification process 0.00 - 1.00" example: 0.76 ownershipConfidence: type: 'number' format: 'float' description: "It is the final result of the verification process 0.00 - 1.00" example: 0.99 cep: type: 'string' description: 'url de CEP(Comprobante de Emision de Pago)' example: 'https://www.banxico.org.mx/cep/go' ReasonProcess: description: 'Information about reason process' type: 'object' properties: code: $ref: '#/definitions/CataloReasonProcess' descriptionError: $ref: '#/definitions/CatalogCodeError' message: type: 'string' format: 'uuid' readOnly: true description: 'message for reason process' example: 'Success tranfer, XML not available' FailureEVConsumption: description: 'Information about a failed employment verification process.' type: 'object' properties: request: $ref: '#/definitions/AccountValidator' errors: description: 'List of errors.' type: 'array' items: $ref: '#/definitions/Error' AckAcountValidator: properties: eventId: type: 'string' format: 'uuid' minLength: 36 maxLength: 36 description: 'Ackknowledge identifier (UUID).' readOnly: true example: '203b25cd-ada2-415e-a4e5-df5eb6568d40' 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: 'Employment verification 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 account verification request has been received.' AckSuccessEVConsumption: description: 'Acknowledge of a successful employment verification process.' type: 'object' allOf: - $ref: '#/definitions/AckAcountValidator' properties: result: $ref: '#/definitions/SuccessEVConsumption' AckFailureEVConsumption: description: 'Acknowledge of an unsuccessful employment verification process.' type: 'object' allOf: - $ref: '#/definitions/AckAcountValidator' properties: employmentVerification: $ref: '#/definitions/FailureEVConsumption' AckEVRequest: description: 'Acknowledge of an employment verification process.' type: 'object' allOf: - $ref: '#/definitions/AckAcountValidator' - $ref: '#/definitions/AccountValidatorId' 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' 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' Links: description: 'Pagination information.' type: 'object' properties: self: description: 'URL of this page.' type: 'string' readOnly: true example: 'https://services.circulodecredito.com.mx/v1/bavs?page=7&perPage=15' first: description: 'URL of the first page.' type: 'string' readOnly: true example: 'https://services.circulodecredito.com.mx/v1/bavs?page=1&perPage=15' previous: description: 'URL of the previous page.' type: 'string' readOnly: true example: 'https://services.circulodecredito.com.mx/v1/bavs?page=6&perPage=15' next: description: 'URL of the next page.' type: 'string' readOnly: true example: 'https://services.circulodecredito.com.mx/v1/bavs?page=8&perPage=15' last: description: 'URL of the last page.' type: 'string' readOnly: true example: 'https://services.circulodecredito.com.mx/v1/bavs?page=12&perPage=15'