> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://infonite.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://infonite.dev/_mcp/server.

# Deposits

GET https://clients.infonite.tech/api/executions/results/{execution_id}/financial/v1/deposits

Term deposits and other guaranteed savings products.

Each deposit carries the amount, the currency, the agreed rate, the dates it runs between and its state at the moment of the extraction. Field by field in [Deposits & savings](/guides/data-models/banking/savings).

Features are chosen when the execution **starts**, not here. An execution that did not ask for `deposits_read` answers `204`, and the only way to get the data is to run another one.

| Status | Meaning                                                                                                                      |
| :----- | :--------------------------------------------------------------------------------------------------------------------------- |
| `200`  | The deposits.                                                                                                                |
| `202`  | `feature_not_ready` — `deposits_read` is still running. **Only this family waits**: the ones that already closed answer now. |
| `204`  | The execution never asked for `deposits_read`. No body.                                                                      |
| `404`  | No execution with that id for your application, or it has been deleted.                                                      |

**Server to server only.** This call is authorised with your application secret: it belongs in your backend, never in a browser, a mobile app or anything your customer can read.

Reference: https://infonite.dev/api-reference/direct-executions/direct-executions-api/fetching-the-results/financial-data/direct-executions-v-1-results-financial-deposits

## Authentication

- `X-APP-SECRET` header (required) — Application Secret

## Servers

- `https://clients.infonite.tech/api` (Legacy Server, default)
- `https://clients.infonite.io/api` (Production Server)

## Request

### Path parameters

- `execution_id` (string, required) — The execution, as the acceptance response returned it.

## Response

### 200

**200 OK**Time deposits and savings goals: what is locked away, at what rate, and until when. **An empty list is an answer, not a gap**: the feature ran and the source reported none.

- `list of object or object`
  - Time Deposit
    - `id` (string, required) — Product ID for the current execution. Note: it may change between executions.
    - `product` ("financial_deposit", required)
    - `sub_family` ("financial_deposit:time", required)
    - `fetch_date` (string, required) — Date this product was fetched
    - `account` (object or object or object, required) — Deposit Account
      - IBAN
        - `value` (string, required) — International Bank Account Number
        - `masked` (string, required) — Partial IBAN
        - `entity_country` (string, required) — Bank Country
        - `entity_code` (string, required) — Bank code
        - `entity_office` (string, required) — Bank office
        - `control_digits` (string, required) — Control digits
      - CLABE
        - `value` (string, required) — Clave Bancaria Estandarizada
        - `masked` (string, required) — Partial Clabe
        - `entity_country` (string, required) — Bank Country
        - `entity_code` (string, required) — Bank code
        - `entity_office` (string, required) — Bank office
        - `control_digits` (string, required) — Control digit
      - Generic Identifier
        - `value` (string, required) — Identifier
        - `entity_country` (string, optional) — Entity country
        - `entity_code` (string, optional) — Entity code
        - `entity_office` (string, optional) — Entity office
        - `control_digits` (string, optional) — Control digits
    - `customer_segment` (enum, required)
      - Allowed values: `not_assigned`, `personal`, `business`, `corporate`, `private`, `retail`
    - `product_name` (string, required) — Product name
    - `available` (object, required) — The total accessible funds, available for withdrawal.
      - `currency` (string or "***", required) — Three-letter ISO currency code — or `***` when the source did not disclose the currency.
      - `amount` (string, required) — Decimal number with 2 digits precision
    - `balance` (object, required) — The amount of founds currently deposited.
      - `currency` (string or "***", required) — Three-letter ISO currency code — or `***` when the source did not disclose the currency.
      - `amount` (string, required) — Decimal number with 2 digits precision
    - `contract` (object, optional) — Contract if present
      - `value` (string, required) — Identifier
      - `entity_country` (string, optional) — Entity country
      - `entity_code` (string, optional) — Entity code
      - `entity_office` (string, optional) — Entity office
      - `control_digits` (string, optional) — Control digits
    - `product_alias` (string, optional) — Product alias
    - `product_description` (string, optional) — Product Description
    - `start_date` (date, optional) — Deposit start date
    - `last_date` (date, optional) — Deposit last date
    - `interest_rate` (object, optional) — Deposit interest rate
      - `value` (string, optional) — Decimal number with 2 digits precision
      - `unit` ("%" or string, optional, default: %)
      - `description` (string, optional, nullable)
  - Savings Goal
    - `id` (string, required) — Product ID for the current execution. Note: it may change between executions.
    - `product` ("financial_deposit", required)
    - `sub_family` ("financial_deposit:goal", required)
    - `fetch_date` (string, required) — Date this product was fetched
    - `account` (object or object or object, required) — Deposit Account
      - IBAN
        - `value` (string, required) — International Bank Account Number
        - `masked` (string, required) — Partial IBAN
        - `entity_country` (string, required) — Bank Country
        - `entity_code` (string, required) — Bank code
        - `entity_office` (string, required) — Bank office
        - `control_digits` (string, required) — Control digits
      - CLABE
        - `value` (string, required) — Clave Bancaria Estandarizada
        - `masked` (string, required) — Partial Clabe
        - `entity_country` (string, required) — Bank Country
        - `entity_code` (string, required) — Bank code
        - `entity_office` (string, required) — Bank office
        - `control_digits` (string, required) — Control digit
      - Generic Identifier
        - `value` (string, required) — Identifier
        - `entity_country` (string, optional) — Entity country
        - `entity_code` (string, optional) — Entity code
        - `entity_office` (string, optional) — Entity office
        - `control_digits` (string, optional) — Control digits
    - `customer_segment` (enum, required)
      - Allowed values: `not_assigned`, `personal`, `business`, `corporate`, `private`, `retail`
    - `product_name` (string, required) — Product name
    - `available` (object, required) — The total accessible funds, available for withdrawal.
      - `currency` (string or "***", required) — Three-letter ISO currency code — or `***` when the source did not disclose the currency.
      - `amount` (string, required) — Decimal number with 2 digits precision
    - `balance` (object, required) — The amount of founds currently deposited.
      - `currency` (string or "***", required) — Three-letter ISO currency code — or `***` when the source did not disclose the currency.
      - `amount` (string, required) — Decimal number with 2 digits precision
    - `contract` (object, optional) — Contract if present
      - `value` (string, required) — Identifier
      - `entity_country` (string, optional) — Entity country
      - `entity_code` (string, optional) — Entity code
      - `entity_office` (string, optional) — Entity office
      - `control_digits` (string, optional) — Control digits
    - `product_alias` (string, optional) — Product alias
    - `product_description` (string, optional) — Product Description
    - `start_date` (date, optional) — Deposit start date
    - `last_date` (date, optional) — Deposit last date
    - `interest_rate` (object, optional) — Deposit interest rate
      - `value` (string, optional) — Decimal number with 2 digits precision
      - `unit` ("%" or string, optional, default: %)
      - `description` (string, optional, nullable)
    - `goal_amount` (object, optional) — The goal amount of founds to be deposited.
      - `currency` (string or "***", required) — Three-letter ISO currency code — or `***` when the source did not disclose the currency.
      - `amount` (string, required) — Decimal number with 2 digits precision

### 202

**202 Accepted**`feature_not_ready`: `deposits_read` is still running. **You do not have to wait for the whole execution** — every family answers as soon as its own feature closes, so a slow source does not hold up the ones that already finished.

- `detail` (string, required) — Error message

## Errors

### 404 Not Found Error

**404 Not Found**No execution with that id for your application, or it has been deleted.

- `detail` (string, required) — Error message

### 422 Unprocessable Entity Error

Validation Error

- `detail` (list of object, optional)
  - `loc` (list of string or integer, required)
  - `msg` (string, required)
  - `type` (string, required)
  - `input` (any, optional)
  - `ctx` (object, optional)

## Examples

### A time deposit and a savings goal

**Response**

```json
[
  {
    "account": {
      "control_digits": "18",
      "entity_code": "9999",
      "entity_country": "ES",
      "entity_office": "0000",
      "masked": "ES379999************8314",
      "type": "iban",
      "value": "ES3799990000186703078314"
    },
    "available": {
      "amount": "3260.34",
      "currency": "EUR"
    },
    "balance": {
      "amount": "3260.34",
      "currency": "EUR"
    },
    "contract": {
      "entity_code": "9999",
      "type": "generic",
      "value": "3142126211"
    },
    "customer_segment": "personal",
    "fetch_date": "2026-09-12T01:48:52+00:00",
    "id": "6aa75284bfa8241c43cb62f8",
    "interest_rate": {
      "description": "TIN",
      "unit": "%",
      "value": "2.50"
    },
    "last_date": "2030-12-31",
    "product": "financial_deposit",
    "product_alias": "Mi Depósito a Plazo",
    "product_description": "Depósito a Plazo para pruebas",
    "product_name": "Depósito a Plazo",
    "start_date": "2022-01-01",
    "sub_family": "financial_deposit:time"
  },
  {
    "account": {
      "control_digits": "18",
      "entity_code": "9999",
      "entity_country": "ES",
      "entity_office": "0000",
      "masked": "ES379999************8314",
      "type": "iban",
      "value": "ES3799990000186703078314"
    },
    "available": {
      "amount": "1000.00",
      "currency": "EUR"
    },
    "balance": {
      "amount": "1000.00",
      "currency": "EUR"
    },
    "contract": {
      "entity_code": "9999",
      "type": "generic",
      "value": "6703078314"
    },
    "customer_segment": "personal",
    "fetch_date": "2026-09-12T01:48:52+00:00",
    "goal_amount": {
      "amount": "5000.00",
      "currency": "EUR"
    },
    "id": "6aa75284bfa8241c43cb62f7",
    "interest_rate": {
      "description": "TIN",
      "unit": "%",
      "value": "2.50"
    },
    "last_date": "2030-12-31",
    "product": "financial_deposit",
    "product_alias": "Mi Objetivo de Ahorro",
    "product_description": "Objetivo de Ahorro para pruebas",
    "product_name": "Objetivo de Ahorro",
    "start_date": "2023-01-01",
    "sub_family": "financial_deposit:goal"
  }
]
```

**SDK Code**

```python A time deposit and a savings goal
import requests

url = "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits"

headers = {"X-APP-SECRET": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript A time deposit and a savings goal
const url = 'https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits';
const options = {method: 'GET', headers: {'X-APP-SECRET': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go A time deposit and a savings goal
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-APP-SECRET", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby A time deposit and a savings goal
require 'uri'
require 'net/http'

url = URI("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-APP-SECRET"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java A time deposit and a savings goal
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits")
  .header("X-APP-SECRET", "<apiKey>")
  .asString();
```

```php A time deposit and a savings goal
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits', [
  'headers' => [
    'X-APP-SECRET' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp A time deposit and a savings goal
using RestSharp;

var client = new RestClient("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits");
var request = new RestRequest(Method.GET);
request.AddHeader("X-APP-SECRET", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift A time deposit and a savings goal
import Foundation

let headers = ["X-APP-SECRET": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### This family has not finished

**Response**

```json
{
  "detail": "feature_not_ready"
}
```

**SDK Code**

```python This family has not finished
import requests

url = "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits"

headers = {"X-APP-SECRET": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript This family has not finished
const url = 'https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits';
const options = {method: 'GET', headers: {'X-APP-SECRET': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go This family has not finished
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-APP-SECRET", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby This family has not finished
require 'uri'
require 'net/http'

url = URI("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-APP-SECRET"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java This family has not finished
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits")
  .header("X-APP-SECRET", "<apiKey>")
  .asString();
```

```php This family has not finished
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits', [
  'headers' => [
    'X-APP-SECRET' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp This family has not finished
using RestSharp;

var client = new RestClient("https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits");
var request = new RestRequest(Method.GET);
request.AddHeader("X-APP-SECRET", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift This family has not finished
import Foundation

let headers = ["X-APP-SECRET": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://clients.infonite.tech/api/executions/results/6aa3d8b418d1c5dc9a8e3d36/financial/v1/deposits")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```