Wealth Reader (8.1.9)

Download OpenAPI specification:

Les API réglementaires basées sur PSD2 donnent accès à certaines informations financières telles que les soldes des comptes bancaires et les transactions. Cependant, il existe d'autres sources d'informations sur la richesse qui ne sont pas accessibles via ces API. L'API Wealth Reader étend les informations offertes par les API réglementaires en fournissant un accès en temps réel à des sources de richesse supplémentaires dans toute entité mondiale. Il existe deux autres documents connexes qui vous aideront à intégrer l'API Wealth Reader. L'un est le guide d'intégration du widget Javascript : https://docs-en.wealthreader.com/ et l'autre est une collection Postman basée sur cette documentation. Très important : Cette définition d'API est adaptée pour les clients intégrant via Widget, donc certains paramètres qui ne sont pas nécessaires pour ce type d'intégration ont été omis, tels que les paramètres d'authentification bancaire, car un token sera utilisé.

Core

API principale requise pour les intégrations standard

Récupère les actifs financiers et les détails de leur composition

Récupère les actifs financiers et les détails de leur composition incluant les portefeuilles d'investissement composés d'actions ou de fonds, cartes de crédit, assurances et prêts. Inclut les informations de propriété pour chaque actif ainsi que des identifiants uniques qui facilitent le traitement des données. Il est possible d'obtenir des données Mock. Vérifiez auprès de l'équipe technique comment procéder.

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

Identifie le client dans le service

code
string

Nom de l'entité. La liste complète est disponible avec GET

Exemple: caixabank

token
string

Identifie les identifiants gardés. Le flux par lequel le token a été obtenu est décrit dans le document 'Guide d'intégration du Widget'. Les utilisateurs Mock suivants sont disponibles: MOCKDATA, réponse OK; MOCKOTP, réponse avec défi OTP; MOCKLOGINKO, réponse avec erreur de login

Exemple: MOCKDATA

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

Liste des types de produits dont les informations doivent être récupérées. Accepte plusieurs valeurs séparées par des virgules.

Exemple: accounts,portfolios

only_balances
boolean
Default: false

Indique s'il faut obtenir uniquement les soldes des produits au lieu de toutes les informations disponibles. Valeur par défaut: false.

Exemple: false

fetch_transaction_details
boolean
Default: false

Indique si des détails étendus des transactions doivent être obtenus lorsque le connecteur de l'entité le prend en charge. IMPORTANT : L'activer implique d'effectuer une ou plusieurs navigations supplémentaires par transaction pour enrichir les informations renvoyées. Cela augmentera inévitablement et de manière significative le temps d'exécution. Le nombre de navigations supplémentaires augmente avec le volume de transactions. Il est recommandé de l'activer uniquement lorsque vous êtes certain qu'un niveau de détail supérieur à celui renvoyé par défaut est requis. Les détails obtenus sont insérés dans la clé additional_info au niveau de chaque transaction. L'utilisation de ce paramètre nécessite un environnement dédié.

Exemple: false

date_from
string <date>

Date à partir de laquelle les transactions sont demandées, au format AAAA-MM-JJ. Doit être une date antérieure à aujourd'hui.

Exemple: 2024-01-01

date_to
string <date>

Ceci s'applique uniquement pour restreindre par dates futures pour les produits loan et confirming, au format AAAA-MM-JJ. La date doit être postérieure à aujourd'hui

Exemple: 2025-12-31

required_products_schema
string

Schéma des produits requis. Indique les comptes ou cartes dont les données sont souhaitées, avec des configurations supplémentaires.

Exemple:

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

Accepte les uuids de transactions séparés par des virgules. Paramètre pris en compte uniquement si product_types est ALL ou inclut accounts. Ajoute le document PDF associé à chacune des transactions bancaires demandées.

Exemple:

20966426721d0885ef9d4b95535e1d3198936f16,8772d6c978d37d7af83094abf380b8b703e94105,e59296b79e7f80cec26679d2c65883025fd59295
otp_method
string

Sélectionne le canal d'envoi du second facteur lorsque l'API a renvoyé le code 2017 ou 20171 (plusieurs méthodes OTP). Rappelez avec le même identifiant de session que cette réponse et définissez otp_method sur la chaîne exacte du champ otp_method d'un objet dans statistics.otpMethods — pas l'index du tableau. À omettre lors de la première requête par identifiants; à envoyer après le choix de l'utilisateur. L'exemple ci-dessous est indicatif; copiez toujours la chaîne renvoyée dans statistics.otpMethods pour votre entité.

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

Liste des types de transaction

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Interroger les tokens associés à une api_key

Utilisez cette méthode pour interroger les tokens liés à une api_key spécifique. Les résultats sont paginés : limit fixe le nombre de tokens par page (500 au maximum) et page indique la page à retourner. api_key, method et limit sont obligatoires ; si l'un d'eux est absent ou invalide, l'API répond avec HTTP 400 et le code d'erreur 2.

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

api_key pour identifier le client dans le service

method
required
string
Value: "get"

Opération à effectuer. La seule valeur prise en charge est get.

Exemple: get

limit
required
integer [ 1 .. 500 ]

Nombre de tokens par page. Minimum 1, maximum 500.

Exemple: 100

page
integer >= 1
Default: 1

Spécifiez le numéro de page que vous souhaitez récupérer. Chaque page contient jusqu'à limit tokens. Si non fourni, la valeur par défaut est 1.

Exemple: 1

code
string

Code d'entité utilisé pour filtrer les tokens. S'il est omis, les tokens de toutes les entités sont retournés.

Exemple: bbva

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

Champ utilisé pour trier les résultats : created_at (date de création) ou accesed_at (date du dernier accès). Par défaut created_at.

Exemple: created_at

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

Sens du tri : ASC (croissant) ou DESC (décroissant). Par défaut 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": {
    }
}

Révoquer un token

Cette méthode permet de révoquer un token existant pour désautoriser les futures demandes d'accès à l'API.

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

Identifie le client dans le service

token
string

Jeton à révoquer.

Responses

Response samples

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

Réattribuer un token à une api_key différente

Cette méthode permet de réattribuer un token d'une api_key à une autre.

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

api_key à partir de laquelle réattribuer le jeton.

api_key_target
string

api_key vers lequel réattribuer le jeton.

token
string

Jeton à réattribuer.

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

Ajouter un nouveau domaine

Ajoute l'association entre le domaine qui hébergera le widget et le webhook de destination. Pour modifier ou tester vos domaines, utilisez 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"

Contrôle si le widget lance un flux de tokenisation :

  • 1 - L'utilisateur s'authentifie auprès de l'institution financière (login, consentement, 2FA si nécessaire) et un token réutilisable est renvoyé pour les requêtes futures
  • 0 - Aucune tokenisation n'est effectuée. La valeur du token précédemment obtenu doit être incluse dans la requête

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

Liste des codes d'erreur

Liste des codes d'erreur. Faites particulièrement attention au fait que tous les codes d'erreur ne doivent pas recevoir le même traitement de votre application. Pour une erreur de mot de passe incorrect, vous ne devez pas réessayer l'appel avec les mêmes paramètres, mais pour une erreur indiquant que l'entité est en maintenance, vous pouvez réessayer. Demandez une session technique avec notre équipe pour résoudre toute question sur la gestion des erreurs.

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Liste des codes d'avertissement

Liste des codes d'avertissement.

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

Response language

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Advanced

Points de terminaison optionnels non requis pour les intégrations standard. Utiliser uniquement si Wealth Reader l'indique explicitement.

Récupère la liste des entités prises en charge

Récupère la liste des entités prises en charge et les informations nécessaires pour dessiner le formulaire de connexion de l'entité.

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

Vérifier la titularité d'un compte bancaire via IBAN

Ce endpoint est optionnel et non requis pour les intégrations standard. À utiliser uniquement sur instruction explicite de Wealth Reader. Permet de vérifier si une personne physique ou morale est titulaire d'un compte bancaire spécifique en utilisant l'IBAN et les données d'identification du titulaire présumé. Nécessite une api_key avec le produit IBAN_OWNERSHIP autorisé. La requête initiale est envoyée avec api_key, iban, document_type, document_number et holder_name. Si le résultat renvoie le statut PENDING, la vérification peut être consultée à nouveau en envoyant uniquement api_key et session. NO_RESPONSE est un résultat d'erreur final : pour réessayer, une nouvelle vérification doit être lancée sans 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": {
    }
}

Enregistrer un nouvel utilisateur

Ce endpoint est optionnel et non requis pour les intégrations standard. À utiliser uniquement sur instruction explicite de Wealth Reader. Ce endpoint permet d'enregistrer un utilisateur soit sur la plateforme de transfert de portefeuille, Easytransfer, soit sur l'outil de reporting, Acumulas, basé sur un identifiant unique.

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

Vérifier le statut d'inscription de l'utilisateur

Ce endpoint est optionnel et non requis pour les intégrations standard. À utiliser uniquement sur instruction explicite de Wealth Reader. Vérifie si un utilisateur est enregistré dans le système Easytransfer ou Acumulas et renvoie le lien d'accès unique pour l'utilisateur.

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

Révoquer un utilisateur précédemment enregistré

Ce endpoint est optionnel et non requis pour les intégrations standard. À utiliser uniquement sur instruction explicite de Wealth Reader. Ce endpoint permet de désinscrire un utilisateur du service de la plateforme 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.

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

Chargement de connexions par lot

Ce endpoint est optionnel et non requis pour les intégrations standard. À utiliser uniquement sur instruction explicite de Wealth Reader. Important : Pour utiliser la gestion des processus batch du côté de Wealthreader, un environnement dédié est nécessaire. Ce endpoint n'est pas disponible sur api.wealthreader.com. Les endpoints regroupés sous le tag "batch" permettent de traiter plusieurs connexions bancaires de manière asynchrone, contrairement à la méthode /entities/ qui est synchrone. Idéal pour traiter de grands volumes de connexions et éviter les 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 les statistiques générales des connexions batch

Ce endpoint est optionnel. Récupère les statistiques générales sur le résultat du traitement de toutes 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 le résultat individuel d'une connexion spécifique dans un batch

Ce endpoint est optionnel. Récupère le résultat d'une connexion spécifique du 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": {
    }
}