MQD - Documentação da API

MQD - Documentação da API

A documentação da API no formato OpenAPI se encontra abaixo. O swagger para transmissor e receptor é o mesmo e está incluído na documentação do MQD.

Versão atual: 2.4.0

Alterações em relação à versão anterior (2.3.0):

  • Adicionado parâmetro versionHeader para suporte a convivência de versões

  • Adicionado requestBody documentando que o body é o payload da response original

  • Atualizada info.description com os 3 grupos de APIs suportados (Dados do Cliente, Dados Abertos, Portabilidade de Crédito)

  • Atualizado endpointName com exemplos dos 3 grupos

  • Esclarecido comportamento do serverOrgId nos modos RECEIVER e TRANSMITTER

  • Adicionados exemplos de erro adicionais (endpoint não suportado)

A versão anterior 2.3.0 pode ser consultada aqui: MQD - Arquivo histórico

openapi: 3.0.3 info: title: Motor de Qualidade de Dados - Cliente description: | API do Motor de Qualidade de Dados (MQD) para validação de respostas de APIs do Open Finance Brasil. O swagger para transmissor e receptor é o mesmo. **Grupos de APIs suportados:** - **Dados do Cliente** — contas, cartão de crédito, operações de crédito, investimentos, câmbio, consentimento, recursos, dados cadastrais - **Dados Abertos** — capitalização, investimentos, câmbio, credenciamento, previdência, seguros - **Portabilidade de Crédito** version: 2.4.0 license: name: Apache 2.0 url: 'https://www.apache.org/licenses/LICENSE-2.0' contact: name: Governança do Open Finance Brasil – Squad Qualidade de Dados email: email@ofb.com url: 'https://openfinancebrasil.atlassian.net/wiki/spaces/OF/overview?homepageId=17367041' externalDocs: description: Documentação Motor Qualidade de Dados url: >- https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/362578565/Motor+de+Qualidade+de+Dados servers: - url: 'http://servidor_motor_de_qualidade' description: Servidor de Produção na receptora/transmissora tags: - name: Validação description: Operações de validação de resposta paths: /ValidateResponse: post: tags: - Validação summary: Valida uma "Response" com base no endpoint indicado description: | Método utilizado para validar os dados obtidos em uma resposta de um TRANSMISSOR (modo RECEIVER) ou os dados servidos para um RECEPTOR (modo TRANSMITTER), de acordo com o endpoint indicado. O body da requisição deve conter o payload JSON completo da resposta obtida da transmissora (ou servida pela transmissora, no modo TRANSMITTER). operationId: validateResponse parameters: - $ref: '#/components/parameters/xFapiInteractionId' - $ref: '#/components/parameters/serverOrgId' - $ref: '#/components/parameters/endpointName' - $ref: '#/components/parameters/transmitterID' - $ref: '#/components/parameters/consentID' - $ref: '#/components/parameters/versionHeader' requestBody: required: true description: | Payload JSON completo da resposta obtida da transmissora. O body é dinâmico — corresponde ao response original da API. content: application/json: schema: type: object description: Response body da API sendo validada responses: '200': description: | A informação enviada foi recebida corretamente pelo serviço e é encaminhada para a fila para posterior validação. content: application/json: schema: $ref: '#/components/schemas/EmptyObject' '400': description: | A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. content: application/json: schema: $ref: '#/components/schemas/GenericError' examples: missingServerOrgId: summary: serverOrgId ausente value: message: 'serverOrgId: Not found or bad format.' missingEndpoint: summary: endpointName ausente value: message: 'endpointName: Not found or bad format.' unsupportedEndpoint: summary: endpoint não suportado value: message: 'endpointName: Unsupported endpoint.' components: parameters: xFapiInteractionId: name: x-fapi-interaction-id in: header description: >- Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação entre a requisição original e a validação no MQD. required: true schema: type: string format: uuid maxLength: 36 pattern: >- ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ example: '150fca7a-533a-11ee-8c99-0242ac120002' serverOrgId: name: serverOrgId in: header description: | Identificador da organização **contraparte** na transação: - **Modo RECEIVER:** ID da TRANSMISSORA onde a informação foi solicitada - **Modo TRANSMITTER:** ID da RECEPTORA que solicitou a informação Deve ser um UUID válido correspondente ao Organisation ID no Diretório Central. required: true schema: type: string format: uuid maxLength: 36 pattern: >- ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ example: 'c1ca8e62-9d6f-4ea3-84f2-d66bc0a8f7dc' endpointName: name: endpointName in: header required: true description: | Identificador exclusivo do endpoint validado, conforme a tabela de endpoints suportados. Deve ser informado sem query parameters e com path parameters genéricos (entre chaves). **Exemplos por grupo:** - Dados do Cliente: `/accounts/v2/accounts/{accountId}` - Dados do Cliente: `/credit-cards-accounts/v2/accounts` - Dados Abertos: `/opendata-capitalization/v1/bonds` - Dados Abertos: `/opendata-investments/v1/funds` - Portabilidade: `/credit-portability/v1/portabilities/{portabilityId}` schema: type: string example: '/accounts/v2/accounts' transmitterID: name: transmitterID in: header description: | Identificador da organização transmissora. Campo opcional que deve ser usado caso o identificador da organização configurado na variável de ambiente SERVER_ORG_ID seja diferente do transmissor real. Deve ser uma organização pertencente ao mesmo conglomerado configurado. required: false schema: type: string format: uuid maxLength: 36 pattern: >- ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ example: 'c1ca8e62-9d6f-4ea3-84f2-d66bc0a8f7dc' consentID: name: consentID in: header required: false description: >- Identificador do consentimento associado à transação. Aplicável apenas para APIs de Dados do Cliente que exigem consentimento. schema: type: string example: 'urn:bancoex:C1DD33123' versionHeader: name: versionHeader in: header required: false description: | Versão específica da API contra a qual o payload será validado. Utilizado durante períodos de convivência entre versões. Se não informado, a validação será feita contra a versão mais recente configurada no MQD para aquele endpoint. schema: type: string pattern: '^\d+\.\d+\.\d+$' example: '2.4.0' schemas: EmptyObject: description: Representa um objeto sem propriedades previamente definidas type: object additionalProperties: false example: {} GenericError: description: Representa uma resposta de erro genérica. type: object additionalProperties: false properties: message: type: string pattern: "^[- /:_.',0-9a-zA-Z]{0,200}$" maxLength: 200