Wealth Reader (8.1.9)

Download OpenAPI specification:

Les APIs reguladores basades en PSD2 proporcionen accés a certa informació financera com saldos de comptes bancaris i transaccions. No obstant això, hi ha altres fonts d'informació patrimonial que no són accessibles per aquestes APIs. L'API de Wealth Reader amplia la informació oferta per les APIs reguladores proporcionant accés en temps real a les fonts patrimonials addicionals en qualsevol entitat del món. Hi ha dos altres documents relacionats que t'ajudaran a integrar l'API de Wealth Reader. Un és la guia d'integració del widget Javascript: https://docs-es.wealthreader.com/ i l'altre és una col·lecció Postman basada en aquesta documentació. Molt important: Aquesta definició de l'API està adaptada per als clients que integren per Widget, per la qual cosa s'han omès alguns paràmetres que no són necessaris per a aquest tipus d'integració, com poden ser els d'autenticació amb el banc, ja que s'utilitzarà un token.

Core

API principal requerida per a integracions estàndard

Obté els actius financers i el detall de la seva composició

Obté els actius financers i el detall de la seva composició de carteres d'inversió compostes per accions o fons, targetes de crèdit, assegurances i préstecs. Inclou informació de titularitat de cadascun dels actius així com identificadors únics que faciliten el tractament de la dada. És possible obtenir dades Mock. Consulteu amb l'equip tècnic com fer-ho.

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

Identifica el client en el servei

code
string

Nom de l'entitat. El llistat complet està disponible amb GET

Exemple: caixabank

token
string

Identifica la credencial custodiada. El flux mitjançant el qual s'ha obtingut el token es descriu al document 'Guia d'integració del Widget'. Els següents usuaris Mock estan disponibles: MOCKDATA, resposta OK; MOCKOTP, resposta amb desafiament OTP; MOCKLOGINKO, resposta amb error de login

Exemple: MOCKDATA

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

Llista de tipus de producte dels quals es vol obtenir informació. Accepta múltiples valors separats per comes.

Exemple: accounts,portfolios

only_balances
boolean
Default: false

Indica si es desitgen obtenir només els saldos dels productes en lloc de tota la informació disponible. Valor per defecte: false.

Exemple: false

fetch_transaction_details
boolean
Default: false

Indica si s'han d'obtenir detalls ampliats de les transaccions quan el connector de l'entitat ho admeti. IMPORTANT: Activar-ho implica fer una o més navegacions addicionals per cada transacció per enriquir la informació retornada. Això augmentarà inevitablement i de manera significativa el temps d'execució. El nombre de navegacions addicionals creix amb el volum de transaccions. Es recomana activar-ho únicament quan es tingui certesa que es requereix un nivell de detall addicional al retornat per defecte. Els detalls obtinguts s'insereixen a la clau additional_info a nivell de cada transacció. L'ús d'aquest paràmetre requereix un entorn dedicat.

Exemple: false

date_from
string <date>

Data a partir de la qual es sol·liciten les transaccions, en format AAAA-MM-DD. Ha de ser una data anterior a avui.

Exemple: 2024-01-01

date_to
string <date>

Això només s'aplica per restringir per dates futures per als productes loan i confirming, en format AAAA-MM-DD. La data ha de ser posterior a avui

Exemple: 2025-12-31

required_products_schema
string

Esquema de productes requerits. Indica els comptes o targetes dels quals es desitgen obtenir dades, amb configuracions addicionals.

Exemple:

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

Accepta uuids de transaccions separats per comes. Paràmetre que només es té en compte si product_types és ALL o inclou accounts. Afegeix el document PDF associat a cadascuna de les transaccions bancàries sol·licitades.

Exemple:

20966426721d0885ef9d4b95535e1d3198936f16,8772d6c978d37d7af83094abf380b8b703e94105,e59296b79e7f80cec26679d2c65883025fd59295
otp_method
string

Indica quin canal d'entrega del segon factor usar quan l'API ha retornat el codi 2017 o 20171 (diversos mètodes OTP). Torneu a cridar amb el mateix identificador de sessió d'aquesta resposta i definiu otp_method al text exacte del camp otp_method d'un objecte a statistics.otpMethods; no useu l'índex de l'array. Opcional en la primera petició amb credencials; envieu-lo després de l'elecció de l'usuari. L'exemple de la referència és orientatiu; copieu sempre la cadena que retorna statistics.otpMethods.

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

Llista de tipus de transacció

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Consulta els tokens associats a una api_key

Utilitza aquest mètode per consultar els tokens vinculats a una api_key específica. Els resultats es paginen: limit fixa el nombre de tokens per pàgina (màxim 500) i page indica la pàgina que es retorna. api_key, method i limit són obligatoris; si en falta algun o no és vàlid, l'API respon amb HTTP 400 i el codi d'error 2.

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

api_key per identificar el client en el servei

method
required
string
Value: "get"

Operació que es realitza. L'únic valor admès és get.

Exemple: get

limit
required
integer [ 1 .. 500 ]

Nombre de tokens per pàgina. Mínim 1, màxim 500.

Exemple: 100

page
integer >= 1
Default: 1

Especifica el número de pàgina que vols recuperar. Cada pàgina conté fins a limit tokens. Si no es proporciona, el valor per defecte és 1.

Exemple: 1

code
string

Codi de l'entitat pel qual es filtren els tokens. Si s'omet, es retornen els tokens de totes les entitats.

Exemple: bbva

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

Camp pel qual s'ordenen els resultats: created_at (data de creació) o accesed_at (data de l'últim accés). Per defecte, created_at.

Exemple: created_at

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

Sentit de l'ordenació: ASC (ascendent) o DESC (descendent). Per defecte, DESC.

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

Revocar un token

Aquest mètode permet revocar un token existent per desautoritzar futures sol·licituds d'accés a l'API.

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

Identifica el client en el servei

token
string

Token a revocar.

Responses

Response samples

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

Reassignar un token a una api_key diferent

Aquest mètode permet reassignar un token d'una api_key a una altra.

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

api_key des de la qual reassignar el token.

api_key_target
string

api_key a la qual reassignar el token.

token
string

Token a reassignar.

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

Afegir un nou domini

Afegeix l'associació entre el domini que hostatjarà el widget i el webhook de destinació. Per editar o provar els seus dominis, utilitzi https://www.wealthreader.com/clients/

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

Method to execute.

Exemple: add

api_key
required
string

User's API key.

domain
required
string

Domain to add.

Exemple: http://desarrollo.cliente.es

url_callback
required
string

URL for callback.

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

tokenize
required
string
Enum: "1" "0"

Controla si el widget inicia un flux de tokenització:

  • 1 - L'usuari s'autentica amb l'entitat financera (login, consentiment, 2FA si cal) i es retorna un token reutilitzable per a futures consultes
  • 0 - No es realitza tokenització. S'ha d'incloure a la petició el valor del token obtingut prèviament

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

Llista de codis d'error

Llista de codis d'error. Presta especial atenció al fet que no tots els codis d'error han de rebre el mateix tractament per part de la teva aplicació. Davant d'un error de contrasenya incorrecta no has de reintentar la crida amb els mateixos paràmetres, però davant d'un error que t'indiqui que l'entitat està en manteniment sí que pots reintentar-ho. Demana una sessió tècnica amb el nostre equip per resoldre qualsevol dubte sobre la gestió d'errors.

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Llista de codis d'advertència

Llista de codis d'advertència.

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Advanced

Punts finals opcionals no requerits per a integracions estàndard. Utilitzar només si Wealth Reader ho indica explícitament.

Obté el llistat d'entitats suportades

Obté el llistat d'entitats suportades i la informació necessària per dibuixar el formulari de login de l'entitat.

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 la titularitat d'un compte bancari mitjançant IBAN

Aquest endpoint és opcional i no és necessari per a integracions estàndard. Utilitzar només si Wealth Reader ho indica explícitament. Permet verificar si una persona física o jurídica és titular d'un compte bancari específic mitjançant l'IBAN i les dades identificatives del suposat titular. Requereix una api_key amb el producte IBAN_OWNERSHIP autoritzat. La petició inicial s'envia amb api_key, iban, document_type, document_number i holder_name. Si el resultat retorna l'estat PENDING, es pot tornar a consultar la verificació enviant únicament api_key i session. NO_RESPONSE és un resultat final d'error: per reintentar cal iniciar una nova verificació sense 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)

Exemple: ES4914651234561234567890

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

Type of identification document

Exemple: NIF

document_number
required
string

Identification document number

Exemple: 12345678Z

holder_name
required
string

Full name of the natural person or company name

Exemple: 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 un nou usuari

Aquest endpoint és opcional i no és necessari per a integracions estàndard. Utilitzar només si Wealth Reader ho indica explícitament. Aquest endpoint permet registrar un usuari ja sigui a la plataforma de traspàs de carteres Easytransfer o a l'eina de reporting Acumulas, a partir d'un identificador únic.

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.

Exemple: 12345678A

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

Service associated with the user. Determines the data flow.

Exemple: easy-transfer

email
required
string <email>

User email, used according to service type.

Exemple: sai_banker@singularbank.com

Responses

Response samples

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

Consultar l'estat de registre d'un usuari

Aquest endpoint és opcional i no és necessari per a integracions estàndard. Utilitzar només si Wealth Reader ho indica explícitament. Consulta si un usuari està registrat al sistema Easytransfer o Acumulas i retorna l'enllaç d'accés únic per a l'usuari.

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

Authentication key

user_id
required
string

User identification document.

Exemple: 12345678A

Responses

Response samples

Content type
application/json
{}

Donar de baixa un usuari prèviament registrat

Aquest endpoint és opcional i no és necessari per a integracions estàndard. Utilitzar només si Wealth Reader ho indica explícitament. Aquest endpoint permet donar de baixa un usuari del servei de la plataforma Easytransfer o 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.

Exemple: 12345678A

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

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

Exemple: easy-transfer

Responses

Response samples

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

Càrrega de connexions en batch

Aquest endpoint és opcional i no és necessari per a integracions estàndard. Utilitzar només si Wealth Reader ho indica explícitament. Important: Per utilitzar la gestió de processos batch del costat de Wealthreader és necessari comptar amb un entorn dedicat. Aquest endpoint no està disponible a api.wealthreader.com. Els endpoints agrupats sota l'etiqueta "batch" permeten processar múltiples connexions bancàries de forma asíncrona, a diferència del mètode /entities/ que és síncron. Ideal per processar grans volums de connexions i 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.

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

Obtenir estadístiques generals sobre les connexions del batch

Aquest endpoint és opcional. Recupera estadístiques generals sobre el resultat del processament de totes les connexions d'un batch.

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

Obtenir el resultat individual d'una connexió específica dins d'un batch

Aquest endpoint és opcional. Recupera el resultat d'una connexió específica del batch.

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.

Exemple: 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.

Exemple: 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.

Exemple: a1b2c3d4

enrollment_id
required
string
Example: enrollment_id=0f3a9c7b1d2e4f5a6b7c8d9e0f1a2b3c

Identifier returned by POST /cards/enrollments/.

Exemple: 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.

Exemple: a1b2c3d4

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

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

Exemple: 2026-07-01

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

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

Exemple: 2026-07-11

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

Filters by the email of the employee.

Exemple: empleado@cliente.com

since_id
integer
Example: since_id=216

Exclusive cursor on the transaction id, for pagination.

Exemple: 216

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

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

Exemple: 500

Responses

Response samples

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