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
versionHeaderpara suporte a convivência de versõesAdicionado
requestBodydocumentando que o body é o payload da response originalAtualizada
info.descriptioncom os 3 grupos de APIs suportados (Dados do Cliente, Dados Abertos, Portabilidade de Crédito)Atualizado
endpointNamecom exemplos dos 3 gruposEsclarecido comportamento do
serverOrgIdnos modos RECEIVER e TRANSMITTERAdicionados 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