Wealth Reader (8.1.9)

Download OpenAPI specification:

基于PSD2的监管API提供对某些金融信息的访问,如银行账户余额和交易。然而,还存在其他财富信息来源,这些信息无法通过这些API访问。Wealth Reader API通过提供对全球任何实体中额外财富来源的实时访问来扩展监管API提供的信息。还有两个其他相关文档将帮助您集成Wealth Reader API。一个是Javascript小部件集成指南:https://docs-en.wealthreader.com/ 另一个是基于此文档的Postman集合。 非常重要:此API定义适用于通过Widget集成的客户端,因此省略了一些对此类集成不必要的参数,例如银行认证参数,因为将使用令牌。

Core

标准集成所需的核心API

检索金融资产及其组成详情

检索金融资产及其组成详情,包括由股票或基金组成的投资组合、信用卡、保险和贷款。包括每个资产的所有权信息以及便于数据处理的唯一标识符。可以获取Mock数据。请咨询技术团队如何操作。

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

在服务中标识客户端

code
string

实体名称。完整列表可通过GET获取

示例: caixabank

token
string

标识托管的凭据。获取令牌的流程在"Widget集成指南"文档中描述。可用的Mock用户如下:MOCKDATA,OK响应;MOCKOTP,带OTP挑战的响应;MOCKLOGINKO,带登录错误的响应

示例: MOCKDATA

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

要检索信息的产品类型列表。接受多个用逗号分隔的值。

示例: accounts,portfolios

only_balances
boolean
Default: false

指示是否仅获取产品余额而不是所有可用信息。默认值:false。

示例: false

fetch_transaction_details
boolean
Default: false

指示当实体连接器支持时是否应获取扩展的交易详情。重要提示:启用它意味着对每笔交易执行一次或多次额外的导航以丰富返回的信息。这将不可避免地显著增加执行时间。额外导航的数量随交易量增加而增长。建议仅在确定需要超出默认返回的详细程度时才启用它。获取到的详情会插入到每笔交易级别的 additional_info 键中。使用此参数需要专用环境。

示例: false

date_from
string <date>

请求交易的起始日期,格式为YYYY-MM-DD。必须是今天之前的日期。

示例: 2024-01-01

date_to
string <date>

这仅适用于按未来日期限制贷款和确认产品,格式为YYYY-MM-DD。日期必须晚于今天

示例: 2025-12-31

required_products_schema
string

所需产品架构。指示需要从哪些账户或卡获取数据,以及附加配置。

示例:

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

接受用逗号分隔的交易uuid。仅当product_types为ALL或包含accounts时才考虑此参数。添加与每个请求的银行交易相关联的PDF文档。

示例:

20966426721d0885ef9d4b95535e1d3198936f16,8772d6c978d37d7af83094abf380b8b703e94105,e59296b79e7f80cec26679d2c65883025fd59295
otp_method
string

当API返回错误码2017或20171(多种OTP方式)时,用于选择二次验证投递渠道。请使用同一响应中的会话标识再次调用,并将otp_method设为statistics.otpMethods中某一对象的otp_method字段的完整字符串——不要使用数组下标。首次凭据请求可省略;用户选择方式后必填。下方示例仅供参考;请始终复制statistics.otpMethods中返回的字符串。

示例: 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
[
  • {
    }
]

交易类型列表

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

查询与api_key关联的令牌

使用此方法查询与特定 api_key 关联的令牌。结果分页返回:limit 设置每页的令牌数量(最多 500),page 选择要返回的页。api_key、method 和 limit 为必填参数;如果缺少任何一个或其无效,API 将返回 HTTP 400 和错误代码 2。

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

api_key用于在服务中识别客户端

method
required
string
Value: "get"

要执行的操作。唯一支持的值是 get。

示例: get

limit
required
integer [ 1 .. 500 ]

每页的令牌数量。最小值 1,最大值 500。

示例: 100

page
integer >= 1
Default: 1

指定要检索的页码。每页最多包含 limit 个令牌。如果未提供,默认值为1。

示例: 1

code
string

用于筛选令牌的实体代码。如果省略,则返回所有实体的令牌。

示例: bbva

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

用于排序结果的字段:created_at(创建日期)或 accesed_at(最后访问日期)。默认值为 created_at。

示例: created_at

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

排序方向:ASC(升序)或 DESC(降序)。默认值为 DESC。

示例: 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": {
    }
}

撤销令牌

此方法允许撤销现有令牌以取消授权未来的API访问请求。

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

在服务中标识客户端

token
string

要撤销的令牌。

Responses

Response samples

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

将令牌重新分配给不同的api_key

此方法允许将令牌从一个api_key重新分配到另一个。

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

从中重新分配令牌的api_key。

api_key_target
string

要将令牌重新分配到的api_key。

token
string

要重新分配的令牌。

示例: 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."
}

添加新域名

添加将托管小部件的域名与目标webhook之间的关联。要编辑或测试您的域名,请使用 https://www.wealthreader.com/clients/

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

Method to execute.

示例: add

api_key
required
string

User's API key.

domain
required
string

Domain to add.

示例: http://desarrollo.cliente.es

url_callback
required
string

URL for callback.

示例: https://desarrollo.cliente.es/hooks/wealthreader

tokenize
required
string
Enum: "1" "0"

控制小部件是否启动令牌化流程:

  • 1 - 用户在金融机构进行身份验证(登录、授权同意、2FA(如需要)),并返回一个可重复使用的令牌
  • 0 - 不执行令牌化。必须在请求中包含之前获取的令牌值

示例: 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"
}

错误代码列表

错误代码列表。请特别注意,并非所有错误代码都应该由您的应用程序以相同方式处理。对于密码错误,您不应该使用相同的参数重试调用,但对于指示实体正在维护的错误,您可以重试。请与我们的团队请求技术会议,以解决有关错误管理的任何问题。

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

警告代码列表

警告代码列表。

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Advanced

可选端点,不需要用于标准集成。仅在 Wealth Reader 明确指示时使用。

检索支持的实体列表

检索支持的实体列表以及绘制实体登录表单所需的信息。

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
[
  • {
    }
]

通过IBAN验证银行账户所有权

此端点是可选的,不需要用于标准集成。仅在Wealth Reader明确指示时使用。 允许使用IBAN和声称持有人的身份数据验证自然人或法人是否是特定银行账户的持有人。 需要已授权 IBAN_OWNERSHIP 产品的 api_key。 初始请求使用 api_key、iban、document_type、document_number 和 holder_name 发送。如果结果返回 PENDING 状态,可以仅发送 api_key 和 session 再次查询验证。NO_RESPONSE 是最终的错误结果:如需重试,必须在不带 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)

示例: ES4914651234561234567890

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

Type of identification document

示例: NIF

document_number
required
string

Identification document number

示例: 12345678Z

holder_name
required
string

Full name of the natural person or company name

示例: 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": {
    }
}

注册新用户

此端点是可选的,不需要用于标准集成。仅在Wealth Reader明确指示时使用。 此端点允许基于唯一标识符在投资组合转移平台Easytransfer或报告工具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.

示例: 12345678A

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

Service associated with the user. Determines the data flow.

示例: easy-transfer

email
required
string <email>

User email, used according to service type.

示例: sai_banker@singularbank.com

Responses

Response samples

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

检查用户注册状态

此端点是可选的,不需要用于标准集成。仅在Wealth Reader明确指示时使用。 检查用户是否已在Easytransfer或Acumulas系统中注册,并返回用户的唯一访问链接。

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

Authentication key

user_id
required
string

User identification document.

示例: 12345678A

Responses

Response samples

Content type
application/json
{}

撤销之前注册的用户

此端点是可选的,不需要用于标准集成。仅在Wealth Reader明确指示时使用。 此端点允许从Easytransfer或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.

示例: 12345678A

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

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

示例: easy-transfer

Responses

Response samples

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

批量连接加载

此端点是可选的,不需要用于标准集成。仅在Wealth Reader明确指示时使用。 重要:要使用Wealthreader端的批量进程管理,需要专用环境。此端点在api.wealthreader.com上不可用。 在"batch"标签下分组的端点允许异步处理多个银行连接,与同步的/entities/方法不同。非常适合处理大量连接并避免超时。

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.

示例: 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"
}

获取批量连接的一般统计信息

此端点是可选的。检索批次中所有连接处理结果的一般统计信息。

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": {
    }
}

获取批次中特定连接的单独结果

此端点是可选的。检索批次中特定连接的结果。

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.

示例: 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.

示例: 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.

示例: a1b2c3d4

enrollment_id
required
string
Example: enrollment_id=0f3a9c7b1d2e4f5a6b7c8d9e0f1a2b3c

Identifier returned by POST /cards/enrollments/.

示例: 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.

示例: a1b2c3d4

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

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

示例: 2026-07-01

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

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

示例: 2026-07-11

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

Filters by the email of the employee.

示例: empleado@cliente.com

since_id
integer
Example: since_id=216

Exclusive cursor on the transaction id, for pagination.

示例: 216

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

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

示例: 500

Responses

Response samples

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