Wealth Reader (8.1.9)

Download OpenAPI specification:

As APIs regulatórias baseadas em PSD2 fornecem acesso a certas informações financeiras, como saldos de contas bancárias e transações. No entanto, existem outras fontes de informações patrimoniais que não são acessíveis através dessas APIs. A API Wealth Reader estende as informações oferecidas pelas APIs regulatórias, fornecendo acesso em tempo real a fontes patrimoniais adicionais em qualquer entidade mundial. Existem dois outros documentos relacionados que irão ajudá-lo a integrar a API Wealth Reader. Um é o guia de integração do widget Javascript: https://docs-en.wealthreader.com/ e o outro é uma coleção Postman baseada nesta documentação. Muito importante: Esta definição de API é adaptada para clientes que integram via Widget, portanto alguns parâmetros que não são necessários para este tipo de integração foram omitidos, como os parâmetros de autenticação bancária, pois um token será usado.

Core

API principal necessária para integrações padrão

Obtém ativos financeiros e detalhes de sua composição

Obtém ativos financeiros e detalhes de sua composição incluindo carteiras de investimento compostas por ações ou fundos, cartões de crédito, seguros e empréstimos. Inclui informações de propriedade para cada ativo bem como identificadores únicos que facilitam o processamento de dados. É possível obter dados Mock. Verifique com a equipe técnica como fazer isso.

Request Body schema: application/x-www-form-urlencoded
api_key
string

Identifica o cliente no serviço

code
string

Nome da entidade. A lista completa está disponível com GET

Exemplo: caixabank

token
string

Identifica a credencial custodiada. O fluxo pelo qual o token foi obtido está descrito no documento 'Guia de integração do Widget'. Os seguintes usuários Mock estão disponíveis: MOCKDATA, resposta OK; MOCKOTP, resposta com desafio OTP; MOCKLOGINKO, resposta com erro de login

Exemplo: MOCKDATA

product_types
string
Enum: "accounts" "portfolios" "cards" "receipts" "loans" "factoring" "confirming" "properties" "invoices" "files" "deposits" "leases" "insurances"

Lista de tipos de produto dos quais as informações devem ser recuperadas. Aceita múltiplos valores separados por vírgulas.

Exemplo: accounts,portfolios

only_balances
boolean
Default: false

Indica se deseja obter apenas os saldos dos produtos em vez de todas as informações disponíveis. Valor padrão: false.

Exemplo: false

fetch_transaction_details
boolean
Default: false

Indica se devem ser obtidos detalhes ampliados das transações quando o conector da entidade o suportar. IMPORTANTE: Ativá-lo implica realizar uma ou mais navegações adicionais por cada transação para enriquecer as informações retornadas. Isto aumentará inevitavelmente e de forma significativa o tempo de execução. O número de navegações adicionais cresce com o volume de transações. Recomenda-se ativá-lo apenas quando houver certeza de que é necessário um nível de detalhe adicional ao retornado por padrão. Os detalhes obtidos são inseridos na chave additional_info ao nível de cada transação. O uso deste parâmetro requer um ambiente dedicado.

Exemplo: false

date_from
string <date>

Data a partir da qual as transações são solicitadas, no formato AAAA-MM-DD. Deve ser uma data anterior a hoje.

Exemplo: 2024-01-01

date_to
string <date>

Isso só se aplica para restringir por datas futuras para produtos loan e confirming, no formato AAAA-MM-DD. A data deve ser posterior a hoje

Exemplo: 2025-12-31

required_products_schema
string

Esquema de produtos necessários. Indica as contas ou cartões dos quais os dados são desejados, com configurações adicionais.

Exemplo:

{
  "ACCOUNTS": {
    "0ae4d722b1c82feeafb4b36b2893230444071335": {
      "only_balances": false,
      "add_pdf_from_uuids": [
        "90763109952d4f2ebece8dceca8254078c5384a0"
      ],
      "date_from": "2024-04-03"
    }
  },
  "CARDS": {
    "957e6f63546f3fecacce80192b6f7436496dc057": {}
  }
}
add_pdf_from_uuids
string

Aceita uuids de transações separados por vírgulas. Parâmetro considerado apenas se product_types for ALL ou incluir accounts. Adiciona o documento PDF associado a cada uma das transações bancárias solicitadas.

Exemplo:

20966426721d0885ef9d4b95535e1d3198936f16,8772d6c978d37d7af83094abf380b8b703e94105,e59296b79e7f80cec26679d2c65883025fd59295
otp_method
string

Seleciona o canal de entrega do segundo fator quando a API retornou o código 2017 ou 20171 (vários métodos OTP). Chame novamente com o mesmo identificador de sessão dessa resposta e defina otp_method com a string exata do campo otp_method de um objeto em statistics.otpMethods — não o índice do array. Omita na primeira requisição com credenciais; envie após a escolha do utilizador. O exemplo abaixo é ilustrativo; copie sempre a string em statistics.otpMethods para a sua entidade.

Exemplo: OTP_SMS ****1234

Responses

Request samples

Content type
application/x-www-form-urlencoded
api_key=a1b2c3d4e5f6g7h8i9j0&code=caixabank&token=1234Asdf&product_types=accounts%2Cportfolios&only_balances=false&date_from=2024-01-01&date_to=2025-12-31&required_products_schema=%7B%22ACCOUNTS%22%3A%7B%220ae4d722b1c82feeafb4b36b2893230444071335%22%3A%7B%22only_balances%22%3Afalse%2C%22add_pdf_from_uuids%22%3A%5B%2290763109952d4f2ebece8dceca8254078c5384a0%22%5D%2C%22date_from%22%3A%222024-04-03%22%7D%7D%2C%22CARDS%22%3A%7B%22957e6f63546f3fecacce80192b6f7436496dc057%22%3A%7B%7D%7D%7D&add_pdf_from_uuids=20966426721d0885ef9d4b95535e1d3198936f16%2C8772d6c978d37d7af83094abf380b8b703e94105

Response samples

Content type
application/json
[
  • {
    }
]

Lista de tipos de transação

query Parameters
lang
string
Default: "es"
Enum: "es" "en"

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Consultar tokens associados a uma api_key

Use este método para consultar os tokens vinculados a uma api_key específica. Os resultados são paginados: limit define o número de tokens por página (máximo 500) e page indica a página a devolver. api_key, method e limit são obrigatórios; se algum deles faltar ou for inválido, a API responde com HTTP 400 e o código de erro 2.

Request Body schema: application/x-www-form-urlencoded
required
api_key
required
string^[a-z0-9]{8}$

api_key para identificar o cliente no serviço

method
required
string
Value: "get"

Operação a realizar. O único valor suportado é get.

Exemplo: get

limit
required
integer [ 1 .. 500 ]

Número de tokens por página. Mínimo 1, máximo 500.

Exemplo: 100

page
integer >= 1
Default: 1

Especifique o número da página que deseja recuperar. Cada página contém até limit tokens. Se não fornecido, o valor padrão é 1.

Exemplo: 1

code
string

Código da entidade usado para filtrar os tokens. Se omitido, são devolvidos os tokens de todas as entidades.

Exemplo: bbva

sort_by
string
Default: "created_at"
Enum: "created_at" "accesed_at"

Campo usado para ordenar os resultados: created_at (data de criação) ou accesed_at (data do último acesso). Padrão created_at.

Exemplo: created_at

sort_order
string
Default: "DESC"
Enum: "ASC" "DESC"

Direção da ordenação: ASC (ascendente) ou DESC (descendente). Padrão DESC.

Exemplo: DESC

Responses

Request samples

Content type
application/x-www-form-urlencoded
api_key=a1b2c3d4&method=get&limit=100&page=1

Response samples

Content type
application/json
{
  • "success": true,
  • "payload": {
    },
  • "pagination": {
    },
  • "statistics": {
    }
}

Revogar um token

Este método permite revogar um token existente para desautorizar futuras solicitações de acesso à API.

Request Body schema: application/x-www-form-urlencoded
required
api_key
string

Identifica o cliente no serviço

token
string

Token a ser revogado.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Token successfully revoked."
}

Reatribuir um token a uma api_key diferente

Este método permite reatribuir um token de uma api_key para outra.

Request Body schema: application/x-www-form-urlencoded
required
api_key_source
string

api_key a partir da qual reatribuir o token.

api_key_target
string

api_key para a qual reatribuir o token.

token
string

Token a ser reatribuído.

Exemplo: FRJ0mHlaqZwLzu

Responses

Request samples

Content type
application/x-www-form-urlencoded
api_key_source=a1b2c3d4e5f6g7h8i9j0&api_key_target=b2c3d4e5f6g7h8i9j0k1&token=FRJ0mHlaqZwLzu

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Token successfully reassigned."
}

Adicionar um novo domínio

Adiciona a associação entre o domínio que hospedará o widget e o webhook de destino. Para editar ou testar os seus domínios, use https://www.wealthreader.com/clients/

Request Body schema: application/x-www-form-urlencoded
required
method
required
string

Method to execute.

Exemplo: add

api_key
required
string

User's API key.

domain
required
string

Domain to add.

Exemplo: http://desarrollo.cliente.es

url_callback
required
string

URL for callback.

Exemplo: https://desarrollo.cliente.es/hooks/wealthreader

tokenize
required
string
Enum: "1" "0"

Controla se o widget inicia um fluxo de tokenização:

  • 1 - O utilizador autentica-se na instituição financeira (login, consentimento, 2FA se necessário) e é devolvido um token reutilizável para futuras consultas
  • 0 - Não é realizada tokenização. O valor do token obtido anteriormente deve ser incluído no pedido

Exemplo: 1

Responses

Request samples

Content type
application/x-www-form-urlencoded
method=add&api_key=a1b2c3d4e5f6g7h8i9j0&domain=https%3A%2F%2Fwww.cliente.com&url_callback=https%3A%2F%2Fwww.cliente.com%2Fwebhooks%2Fwealthreader&tokenize=1

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

Lista de códigos de erro

Lista de códigos de erro. Preste atenção especial ao fato de que nem todos os códigos de erro devem receber o mesmo tratamento da sua aplicação. Para um erro de senha incorreta, você não deve tentar novamente a chamada com os mesmos parâmetros, mas para um erro indicando que a entidade está em manutenção, você pode tentar novamente. Solicite uma sessão técnica com nossa equipe para resolver quaisquer questões sobre gerenciamento de erros.

query Parameters
lang
string
Default: "es"
Enum: "es" "en"

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Lista de códigos de aviso

Lista de códigos de aviso.

query Parameters
lang
string
Default: "es"
Enum: "es" "en"

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Advanced

Endpoints opcionais não necessários para integrações padrão. Use apenas se explicitamente instruído pela Wealth Reader.

Obtém a lista de entidades suportadas

Obtém a lista de entidades suportadas e as informações necessárias para desenhar o formulário de login da entidade.

query Parameters
show_only_tested
integer
Default: 0
Enum: 0 1

Indicates whether to show only tested entities. Default value is 0. In production environments, always use 1.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Verificar titularidade de conta bancária via IBAN

Este endpoint é opcional e não é necessário para integrações padrão. Use apenas se explicitamente instruído pela Wealth Reader. Permite verificar se uma pessoa física ou jurídica é titular de uma conta bancária específica usando o IBAN e os dados de identificação do suposto titular. Requer uma api_key com o produto IBAN_OWNERSHIP autorizado. A solicitação inicial é enviada com api_key, iban, document_type, document_number e holder_name. Se o resultado retornar o estado PENDING, é possível consultar novamente a verificação enviando apenas api_key e session. NO_RESPONSE é um resultado final de erro: para tentar novamente é necessário iniciar uma nova verificação sem session.

Request Body schema: application/x-www-form-urlencoded
required
One of
api_key
required
string

Identifies the client in the service. It must have the IBAN_OWNERSHIP product authorized.

iban
required
string

IBAN code of the bank account to verify (without spaces)

Exemplo: ES4914651234561234567890

document_type
required
string
Enum: "NIF" "NIE" "Pasaporte" "CIF"

Type of identification document

Exemplo: NIF

document_number
required
string

Identification document number

Exemplo: 12345678Z

holder_name
required
string

Full name of the natural person or company name

Exemplo: LUIS GARCIA BAQUERO

Responses

Request samples

Content type
application/x-www-form-urlencoded
Example
api_key=a1b2c3d4e5f6g7h8i9j0&iban=ES4914651234561234567890&document_type=NIF&document_number=12345678Z&holder_name=LUIS%20GARCIA%20BAQUERO

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "payload": {
    },
  • "statistics": {
    }
}

Registrar um novo usuário

Este endpoint é opcional e não é necessário para integrações padrão. Use apenas se explicitamente instruído pela Wealth Reader. Este endpoint permite registrar um usuário na plataforma de transferência de portfólio Easytransfer ou na ferramenta de relatórios Acumulas, com base em um identificador único.

Request Body schema: application/x-www-form-urlencoded
required
api_key
required
string

Authentication key (8 alphanumeric characters)

user_id
required
string

User identification document.

Exemplo: 12345678A

service
required
string
Enum: "integra" "easy-transfer"

Service associated with the user. Determines the data flow.

Exemplo: easy-transfer

email
required
string <email>

User email, used according to service type.

Exemplo: sai_banker@singularbank.com

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "User registered successfully"
}

Verificar status de registro do usuário

Este endpoint é opcional e não é necessário para integrações padrão. Use apenas se explicitamente instruído pela Wealth Reader. Verifica se um usuário está registrado no sistema Easytransfer ou Acumulas e retorna o link de acesso único para o usuário.

Request Body schema: application/x-www-form-urlencoded
required
api_key
required
string

Authentication key

user_id
required
string

User identification document.

Exemplo: 12345678A

Responses

Response samples

Content type
application/json
{}

Revogar um usuário previamente registrado

Este endpoint é opcional e não é necessário para integrações padrão. Use apenas se explicitamente instruído pela Wealth Reader. Este endpoint permite cancelar o registro de um usuário do serviço da plataforma Easytransfer ou Acumulas.

Request Body schema: application/x-www-form-urlencoded
required
api_key
required
string

Authentication key (8 alphanumeric characters)

user_id
required
string

User identification document.

Exemplo: 12345678A

service
required
string
Enum: "integra" "easy-transfer" "all"

Service from which to unregister the user. 'all' for all services.

Exemplo: easy-transfer

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "User unregistered successfully"
}

Carregamento de conexões em lote

Este endpoint é opcional e não é necessário para integrações padrão. Use apenas se explicitamente instruído pela Wealth Reader. Importante: Para utilizar a gestão de processos batch do lado do Wealthreader, é necessário contar com um ambiente dedicado. Este endpoint não está disponível em api.wealthreader.com. Os endpoints agrupados sob a tag "batch" permitem processar múltiplas conexões bancárias de forma assíncrona, ao contrário do método /entities/ que é síncrono. Ideal para processar grandes volumes de conexões e evitar timeouts.

Request Body schema: application/json
required
api_key
required
string

Identifies the client in the service

notification_url
required
string <uri>

Webhook URL. A notification is sent to this URL for each individual credential as soon as it completes processing, not only once all connections in the batch are done.

Exemplo: https://example.com/webhook/batch-complete

required
Array of objects (batch-connection) non-empty

List of connections to process

Responses

Callbacks

Request samples

Content type
application/json
{
  • "api_key": "a1b2c3d4e5f6g7h8i9j0",
  • "connections": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "batch_id": "batch_20250120_a1b2c3d4",
  • "total_connections": 5,
  • "estimated_completion_time": "2025-01-20T10:45:00Z"
}

Callback payload samples

Callback
POST: Webhook fired when a credential finishes processing
Content type
application/json
{
  • "batch_id": 10863151,
  • "credential_id": "cred_demo_002",
  • "status": "completed",
  • "timestamp": "2026-05-13T08:02:47+00:00"
}

Obter estatísticas gerais sobre conexões batch

Este endpoint é opcional. Recupera estatísticas gerais sobre o resultado do processamento de todas as conexões em um lote.

Request Body schema: application/json
required
api_key
required
string

Identifies the client in the service

batch_id
required
string

Batch ID

Responses

Request samples

Content type
application/json
{
  • "api_key": "string",
  • "batch_id": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "batch_id": "batch_20250120_a1b2c3d4",
  • "status": "completed",
  • "statistics": {
    }
}

Obter resultado individual de uma conexão específica dentro de um batch

Este endpoint é opcional. Recupera o resultado de uma conexão específica do lote.

Request Body schema: application/json
required
api_key
required
string

Identifies the client in the service

batch_id
required
string

Batch ID

credential_id
required
string

Filter by specific credential_id

Responses

Request samples

Content type
application/json
{
  • "api_key": "string",
  • "batch_id": "string",
  • "credential_id": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "payload": {
    },
  • "statistics": {
    }
}

Cards (real time)

Real-time card expense synchronization from the Open Sync mobile app: per-customer employee pre-registration, signed webhooks (card_transaction.created / card_enrollment.confirmed), and REST query / backfill.

Register or rotate the real-time cards webhook

Creates or updates the webhook URL of the customer for the card_transaction.created and card_enrollment.confirmed events (see the cards-webhook-delivery schema for the delivery format and signature). On first setup, or when rotate_secret is true, a new webhook_secret (64 hex characters) is generated and returned once; in any other case webhook_secret comes back as null in the response and cannot be retrieved again. webhook_url must always be https:// and must resolve to a publicly routable host: localhost, private, loopback, link-local (including the cloud metadata address), CGNAT, multicast and reserved addresses are rejected, in any notation (hexadecimal, decimal, octal, short dotted or IPv4-mapped IPv6), and so is a hostname that does not resolve at all. The same check runs again right before every delivery, not only at registration: if the host is repointed at an internal address afterwards (DNS rebinding) the delivery is closed as failed with response_excerpt "blocked_host". Sending null in webhook_url disables webhooks for that customer; omitting the field leaves the stored URL untouched, which is how the secret is rotated without changing the URL.

Request Body schema: application/json
required
api_key
required
string

API key of the customer.

webhook_url
string or null

https:// URL that will receive the events, on a publicly routable host that resolves in DNS. null disables webhooks; omitting the field leaves the stored URL unchanged.

Exemplo: https://cliente.example.com/webhooks/wealthreader-cards

rotate_secret
boolean
Default: false

When true, generates and returns a new webhook_secret.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Pre-register the email of an employee

Creates an enrollment request in pending status with a short expiry (ttl_minutes, 20 by default, between 1 and 60) for the employee to confirm by opening the mobile app and entering that email (POST /user-sync-validation/, no contract change for the app). It is idempotent: repeating the call for the same (api_key, email) while it is still pending and not expired returns the same request. If the email is already linked to the calling customer, it returns status "active" directly. If it is already linked to a different customer, it returns 409. Rate limit: at most 60 calls to this endpoint per api_key every 60 seconds, counting every attempt and not only the ones that create a row, checked before anything else so the answers that create nothing (200 already active, 409 linked to another customer, 400) cannot be walked as an enumeration oracle. Exceeding it returns 429 with code rate_limited.

Request Body schema: application/json
required
api_key
required
string

API key of the customer.

email
required
string <email>

Email of the employee to pre-register.

Exemplo: empleado@cliente.com

ttl_minutes
integer [ 1 .. 60 ]
Default: 20

Minutes the request stays valid before expiring.

Responses

Request samples

Content type
application/json
{
  • "api_key": "a1b2c3d4",
  • "email": "empleado@cliente.com",
  • "ttl_minutes": 20
}

Response samples

Content type
application/json
{
  • "success": true,
  • "payload": {
    }
}

Check the status of an enrollment

Read-only status of an enrollment request. It has no side effects on card users, unlike POST /user-sync-validation/, which does confirm. The only write allowed is lazily marking a pending enrollment whose expiry date has already passed as expired.

query Parameters
api_key
required
string
Example: api_key=a1b2c3d4

API key of the customer. Note it travels in the query string, so it ends up in access logs and intermediary proxies.

Exemplo: a1b2c3d4

enrollment_id
required
string
Example: enrollment_id=0f3a9c7b1d2e4f5a6b7c8d9e0f1a2b3c

Identifier returned by POST /cards/enrollments/.

Exemplo: 0f3a9c7b1d2e4f5a6b7c8d9e0f1a2b3c

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "payload": {
    }
}

Query / backfill real-time card transactions

Returns the real-time card transactions received for the employees linked to this api_key, ordered by ascending id. Meant both for periodic backfill (poll with date_from/date_to and paginate with since_id) and for one-off queries. This is the same transaction object carried by the card_transaction.created webhook.

query Parameters
api_key
required
string
Example: api_key=a1b2c3d4

API key of the customer. Note it travels in the query string, so it ends up in access logs and intermediary proxies.

Exemplo: a1b2c3d4

date_from
string <date>
Example: date_from=2026-07-01

YYYY-MM-DD, on the operation date. Default: today minus 3 days.

Exemplo: 2026-07-01

date_to
string <date>
Example: date_to=2026-07-11

YYYY-MM-DD, on the operation date. Default: today.

Exemplo: 2026-07-11

email
string <email>
Example: email=empleado@cliente.com

Filters by the email of the employee.

Exemplo: empleado@cliente.com

since_id
integer
Example: since_id=216

Exclusive cursor on the transaction id, for pagination.

Exemplo: 216

limit
integer <= 1000
Default: 500
Example: limit=500

Maximum number of transactions to return (500 by default, 1000 max).

Exemplo: 500

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "payload": {
    }
}