Getting Started
A guide to learn how to create and confirm Holder Verifications from start to finish.
Geographic Limitation
This API is at the moment available only for Spanish IBANs and NIF/NIEs.
Devengo Holder Verifications API allows you to confirm that a Spanish NIF/NIE is the legal account holder of a bank account. This guide will teach you how to create and confirm holder verifications from start to finish.
Please notice that this service ONLY verifies that a provided person is the legal account holder of the provided IBAN. If you want to verify that a non-account holder (e.g. beneficiary) has access to the IBAN please use our Access Verifications API.
Although the verification occurs just in a few seconds, this is an asynchronous process and we recommend to create a webhook to receive our callbacks to have detailed and realtime control over the process.
Create a Sandbox Account
The first step, unless you are already using other Devengo products, is to create a Sandbox Account. The Sandbox Account allows you to test the functions without using real bank accounts or transactions. To create a Sandbox Account, follow these steps:
- Create your account by filling out this form.
- You will receive a confirmation email. Once confirmed, you will have full access to the Devengo API.
Create a session token
To interact with the Devengo API, you need to generate a session token. This token authenticates your requests and provides access to the API. To create a new session token, you will have to provide the email and password used in the signup form.
curl -X POST 'https://api.sandbox.devengo.com/v1/auth/tokens' \
-H 'Content-Type: application/json' \
-d '{"email": "[email protected]", "password": "your_password"}'
{
"token": "eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX25kIjoibWFuXzRuakRLSTNFQmJjYWtyQXEyMENCSVohLCJ1c2VyX3R5cG6iOiJNYW5hZ2VyIiwiY29xcGFueV9pZCI6bnVsbCwiZXhwIjoiMTY4NjA1MHA0MiJ9.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"refresh_token": "eyJhbGciOiJIvzI1NiJ9.eyJ1c2VyX2lkIjoibWFuXzRuakRLSTNFQmJjYWtyQXEyMENCSVHiLCJ1c2VyX3R5cGUiOiJNYW5hZ2VyIiwiY29tcGFueV9pZCI6bnVsbCwicmVmcmVzaF90b2tlbl9pZCI6InRva18yNUg4ajZHMEFiUUp4VkZHdDJkTWxqIiwiZXhwIjoiMTY4NzI5ODg0MiJ9.IcTS5-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
Create the first Holder Verification
Once you have a session token, you can start creating Holder Verifications:
curl -X POST https://api.sandbox.devengo.com/v1/holder_verifications \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer THE_SESSION_TOKEN' \
-d '{
"recipient": "Devengo S.L"",
"taxid": "B88353412",
"destination": {
"type": "iban",
"iban": "ES3969400001150000000001"
}
}'
You will get a response with this structure:
{
"holder_verification": {
"id": "vrh_2KX8KGkSUMr37APZsRb2l2",
"counterparty": {
"name": "Devengo S.L",
"taxid": "B88353412",
"account": {
"identifiers": [
{
"type": "iban",
"iban": "ES3969400001150000000001"
}
],
"bank": {
"name": "Devengo",
"bic": "DEVNESM2XXX"
}
}
},
"status": "created",
"company_reference": null,
"metadata": {},
"response": null,
"fee": {
"cents": 0,
"currency": "EUR"
},
"created_at": "2025-06-21T09:14:05Z",
"error": null
}
}
Result of the verification
Once we receive the verification response from the counterparty's financial institution, we will update the status to the corresponding value:
confirmed
if the counterparty is the legal account holder.failed
if the counterparty is not the legal account holder.rejected
if the legal holder of the provided account can't be verified (e.g. because the account does not exist, has been closed, etc.).
Sandbox Testing
Please note that in the Sandbox environment:
- All verifications for the IBAN
ES8569400001100000000000
will becomerejected
- Verifications for any other IBAN will be processed.
- Using the counterparty identifier
B88353412
will return aconfirmed
verification- Any other counterparty identifier will return a
failed
verification.
Retrieving a holder verification
You can always access the state of a holder verification using the corresponding endpoint:
curl --request GET \
--url https://api.sandbox.devengo.com/v1/holder_verifications/vrh_2KX8KGkSUMr37APZsRb2l2 \
--header 'Authorization: Bearer THE_SESSION_TOKEN' \
--header 'accept: application/json; charset=utf-8'
Next steps
Updated 10 days ago