---
title: "BCI (Banco Comercial e de Investimentos) Exchange Rates Today API (MZN Buy & Sell)"
description: "BCI (Banco Comercial e de Investimentos) exchange rates: 1 USD = 63.2500 buy / 64.5100 sell MZN, 1 EUR = 69.8700 buy / 71.2600 sell MZN. 12 currencies vs the Banco de Moçambique official rate, hourly, free API."
canonical: https://allratestoday.com/bank-exchange-rate-api/mz/bcimz/
source: AllRatesToday (https://allratestoday.com/) — Markdown mirror of the page above; index of all pages at https://allratestoday.com/llms.txt
generated: 2026-11-14T22:57:02.054Z
---

# BCI (Banco Comercial e de Investimentos) Exchange Rates Today API (MZN Buy & Sell)

BCI (Banco Comercial e de Investimentos) exchange rates: 1 USD = 63.2500 buy / 64.5100 sell MZN, 1 EUR = 69.8700 buy / 71.2600 sell MZN. 12 currencies vs the Banco de Moçambique official rate, hourly, free API.

By [Madhushan](https://allratestoday.com/authors/madhushan/), Founder & Lead Developer · Updated 14 Nov 2026

   **Retail board rates.** These are the prices BCI (Banco Comercial e de Investimentos) displayed on [its own rates page](https://www.bci.co.mz/cambio/) when we last read it. They are indicative, change through the day, and are not official rates. For the reference rate, see the [Banco de Moçambique](https://allratestoday.com/central-bank-rates-api/bdm/).   ![](https://allratestoday.com/logos/banks/bcimz.webp)

## About BCI (Banco Comercial e de Investimentos)

 [www.bci.co.mz](https://www.bci.co.mz/)

BCI is one of Mozambique’s largest banks, owned by Portugal’s CGD and BPI. Its câmbio page lists a daily bid and offer in meticais for thirteen currencies.

## ![](https://flagcdn.com/24x18/mz.png) Latest board, read 15 Nov 2026, 00:53 Mozambique time (0h ago)

Bank’s own last-updated stamp: **2026-11-15 12:53:18 AM** (as printed on its page, local time).

Board shown: **Daily counter board (bid / offer)**. Banks outside the Gulf publish several boards for the same currency — counter notes, drafts, transfers, cards — and this page shows one of them, the same one for every bank in Mozambique so the comparison is like for like. The others are on the bank’s own page.

| Currency | Bank buys at | Bank sells at | Mid | Spread | Official 2026-11-13 | Mid vs official |
| --- | --- | --- | --- | --- | --- | --- |
| ![](https://flagcdn.com/24x18/us.png)`USD` | 63.2500 | 64.5100 | 63.8800 | 1.97% | 64.5400 | -1.02% |
| ![](https://flagcdn.com/24x18/eu.png)`EUR` | 69.8700 | 71.2600 | 70.5650 | 1.97% | 71.3900 | -1.16% |
| ![](https://flagcdn.com/24x18/gb.png)`GBP` | 83.6400 | 85.3100 | 84.4750 | 1.98% | 85.4000 | -1.08% |
| ![](https://flagcdn.com/24x18/cn.png)`CNY` | 9.4800 | 9.6600 | 9.5700 | 1.88% | 9.6800 | -1.14% |
| ![](https://flagcdn.com/24x18/ch.png)`CHF` | 75.4100 | 76.9100 | 76.1600 | 1.97% | 77.1100 | -1.23% |
| ![](https://flagcdn.com/24x18/ca.png)`CAD` | 44.3500 | 45.2300 | 44.7900 | 1.97% | 45.2600 | -1.04% |
| ![](https://flagcdn.com/24x18/au.png)`AUD` | 42.9100 | 43.7600 | 43.3350 | 1.96% | 43.8600 | -1.20% |
| ![](https://flagcdn.com/24x18/dk.png)`DKK` | 9.3500 | 9.5300 | 9.4400 | 1.91% | 9.5500 | -1.15% |
| ![](https://flagcdn.com/24x18/na.png)`NAD` | 3.7300 | 3.8000 | 3.7650 | 1.86% | — | — |
| ![](https://flagcdn.com/24x18/no.png)`NOK` | 6.6100 | 6.7400 | 6.6750 | 1.95% | 6.7600 | -1.26% |
| ![](https://flagcdn.com/24x18/se.png)`SEK` | 6.2900 | 6.4100 | 6.3500 | 1.89% | 6.4300 | -1.24% |
| ![](https://flagcdn.com/24x18/za.png)`ZAR` | 3.7300 | 3.8000 | 3.7650 | 1.86% | 3.8300 | -1.70% |

All values are MZN per 1 unit of the currency. Spread = (sell − buy) ÷ mid. Average spread across the board: **1.93%**. Official = Banco de Moçambique rate for 2026-11-13.

## BCI (Banco Comercial e de Investimentos) rate history since 14 Nov 2026

We keep every day’s BCI (Banco Comercial e de Investimentos) board permanently, from 14 Nov 2026 onwards: one row per day and currency, the last board of the day.

| Month | Last board | ![](https://flagcdn.com/24x18/us.png) USD buy / sell | ![](https://flagcdn.com/24x18/eu.png) EUR buy / sell | ![](https://flagcdn.com/24x18/gb.png) GBP buy / sell |
| --- | --- | --- | --- | --- |
| Nov 2026 | 14 Nov 2026 | 63.2500 / 64.5100 | 69.8700 / 71.2600 | 83.6400 / 85.3100 |

MZN per 1 unit, the last board stored in each month (the bank publishes none on most weekends and holidays). Any day or range by API: History API examples.

## Quick start: call the BCI (Banco Comercial e de Investimentos) API

You need a free API key to run these. Register in under a minute, no card required. Send it in the `Authorization: Bearer` header on every call.

 [Get a free API key](https://allratestoday.com/register) [Already registered? Copy your key from the dashboard.](https://allratestoday.com/dashboard)

The USD rate BCI displays right now:

```
curl "https://allratestoday.com/api/v1/bank-rates/mz/bcimz?ccy=USD" \
  -H "Authorization: Bearer art_live_your_key"
```

What comes back, a real response built from the board captured 2026-11-14 22:53 UTC:

```
{
  "bank": "bcimz",
  "name": "BCI",
  "country": "mz",
  "quote_ccy": "MZN",
  "bank_updated_at": "2026-11-15 12:53:18 AM",
  "basis": "Daily counter board (bid / offer)",
  "captured_at": "2026-11-14T22:53:19.146Z",
  "ccy": "USD",
  "buy": 63.25,
  "sell": 64.51,
  "mid": 63.88,
  "spread_pct": 1.972,
  "official": 64.54,
  "vs_official_pct": -1.023,
  "disclaimer": "Retail buy/sell rates as displayed on each bank’s own website at capture time, quoted as home currency per 1 unit of foreign currency. Indicative only: banks change these through the day, apply them at the counter or in-app, and they are not official or reference rates. For the rate a regulation names, use the central-bank endpoints.",
  "attribution": {
    "source": "Board rates published by BCI on its own website, collected by AllRatesToday",
    "bank_url": "https://www.bci.co.mz/cambio/",
    "url": "https://allratestoday.com/bank-exchange-rate-api/mz/bcimz/",
    "terms": "Public pages that show the rates need a visible link to allratestoday.com"
  }
}
```

The bank’s full board, every currency it shows:

```
curl "https://allratestoday.com/api/v1/bank-rates/mz/bcimz" \
  -H "Authorization: Bearer art_live_your_key"
```

Same envelope with a `rates` array (first rows shown):

```
{
  "bank": "bcimz",
  "name": "BCI",
  "country": "mz",
  "quote_ccy": "MZN",
  "bank_updated_at": "2026-11-15 12:53:18 AM",
  "basis": "Daily counter board (bid / offer)",
  "captured_at": "2026-11-14T22:53:19.146Z",
  "rates": [
    {"ccy":"AUD","buy":42.91,"sell":43.76,"mid":43.335,"spread_pct":1.961,"official":43.86,"vs_official_pct":-1.197},
    {"ccy":"CAD","buy":44.35,"sell":45.23,"mid":44.79,"spread_pct":1.965,"official":45.26,"vs_official_pct":-1.038},
    {"ccy":"CHF","buy":75.41,"sell":76.91,"mid":76.16,"spread_pct":1.97,"official":77.11,"vs_official_pct":-1.232},
    … 9 more currencies
  ],
  "disclaimer": "Retail buy/sell rates as displayed on each bank’s own website at capture time, quoted as home currency per 1 unit of foreign currency. Indicative only: banks change these through the day, apply them at the counter or in-app, and they are not official or reference rates. For the rate a regulation names, use the central-bank endpoints.",
  "attribution": { … }
}
```

The board as it stood on a past day (every day’s board is kept permanently):

```
curl "https://allratestoday.com/api/v1/bank-rates/mz/bcimz?date=2026-11-07" \
  -H "Authorization: Bearer art_live_your_key"
```

### JavaScript

```
const res = await fetch('https://allratestoday.com/api/v1/bank-rates/mz/bcimz?ccy=USD', {
  headers: { Authorization: 'Bearer art_live_your_key' },
});
if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);
const r = await res.json();
console.log(`BCI buys USD at ${r.buy}, sells at ${r.sell} MZN`);
```

### Python

```
import requests

r = requests.get(
    "https://allratestoday.com/api/v1/bank-rates/mz/bcimz",
    headers={"Authorization": "Bearer art_live_your_key"},
    timeout=10,
)
r.raise_for_status()
board = r.json()
for row in board["rates"]:
    print(row["ccy"], row["buy"], row["sell"], row["official"])
```

## Endpoints

- `GET /api/v1/bank-rates/mz` — every covered bank in Mozambique, latest board each, plus `official_source` and `official_date`.
- `GET /api/v1/bank-rates/mz/bcimz` — one bank’s latest board.
- `?ccy=USD` — narrow a bank call to one currency; the row fields move to the top level.
- `?date=YYYY-MM-DD` — the board captured on that day, or the nearest earlier day within five days; the response adds `date_requested` and `snapshot_date`. Every plan.
- `GET /api/v1/bank-rates/mz/bcimz/history?ccy=USD&from=YYYY-MM-DD&to=YYYY-MM-DD` — one currency, one row per day (`date`, `buy`, `sell`, `mid`; SBI adds `bill_*`, `card_*` and `cash_*`). Defaults to the last year; `&format=csv`, `xml` or `xlsx`. Paid plans, one call per month covered. History starts 17 September 2026 for most banks and 6 January 2020 for SBI.

## Response fields

| Field | Meaning |
| --- | --- |
| `quote_ccy` | MZN. Every price is MZN per 1 unit of `ccy`. |
| `buy` | What the bank pays you in MZN for one unit of foreign currency. |
| `sell` | What the bank charges you in MZN for one unit — the rate for sending money abroad. |
| `mid`, `spread_pct` | Midpoint of buy and sell; spread = (sell − buy) ÷ mid, in percent. |
| `official`, `vs_official_pct` | The Banco de Moçambique rate for the same currency and how far the bank’s mid sits from it. |
| `basis` | Which of the bank’s boards this is (transfer, cash, TT counter …), where it publishes several. |
| `captured_at` | When AllRatesToday read the bank’s page (UTC). Boards are read hourly. |
| `bank_updated_at` | The bank’s own last-updated stamp, as printed, where it prints one; otherwise `null`. |

## Errors and limits

- `401` — no key or an invalid key. Any plan’s key works, the free one included.
- `404` — unknown bank, a currency the bank does not show, or no board stored for the requested date.
- `400` — `date` not in `YYYY-MM-DD` form, or in the future.
- Each call counts against your plan. Responses can be cached for five minutes; past-day boards never change.
- Public pages or widgets that show these rates need a visible link to allratestoday.com.

## Why use bank board rates through an API?

The Banco de Moçambique official rate is what accounting, tax and customs rules name, but it is not what a customer pays at the counter or in an app. Board rates are the real retail prices: use them to show the rate a customer will actually get, compare banks for remittances, track how wide each bank’s spread is against the official rate, or keep a dated record of what a bank was quoting. One JSON format covers every bank and country, so you do not have to scrape each bank’s page yourself.

## Start calling the BCI (Banco Comercial e de Investimentos) board API

Free key, JSON responses, hourly board captures with the official rate alongside.

 [Get a free API key](https://allratestoday.com/register) [Read the docs](https://allratestoday.com/docs/)

## History API: BCI (Banco Comercial e de Investimentos) rates for past dates

**One day**, every plan including the free key: `/api/v1/bank-rates/mz/bcimz?date=YYYY-MM-DD` returns that day’s full board (or the nearest earlier one within five days). **A range** for one currency, one row per day, paid plans: `/api/v1/bank-rates/mz/bcimz/history` with `ccy`, `from` and `to` (default: the last year). Billed one call per month covered.

The first three days of BCI (Banco Comercial e de Investimentos) USD history:

```
curl "https://allratestoday.com/api/v1/bank-rates/mz/bcimz/history?ccy=USD&from=2026-11-14&to=2026-11-14" \
  -H "Authorization: Bearer art_live_your_key"
```

Response (the real first rows, as the API returns them):

```
{
  "bank": "bcimz",
  "name": "BCI (Banco Comercial e de Investimentos)",
  "country": "mz",
  "ccy": "USD",
  "quote_ccy": "MZN",
  "from": "2026-11-14",
  "to": "2026-11-14",
  "count": 1,
  "truncated": false,
  "billed_requests": 1,
  "rates": [
    {"date":"2026-11-14","buy":63.25,"sell":64.51,"mid":63.88}
  ],
  "disclaimer": "Retail buy/sell rates as displayed on each bank’s own website at capture time, quoted as home currency per 1 unit of foreign currency. Indicative only: banks change these through the day, apply them at the counter or in-app, and they are not official or reference rates. For the rate a regulation names, use the central-bank endpoints.",
  "attribution": { … }
}
```

The whole range as CSV: `format` also takes `xml` and `xlsx`.

```
curl "https://allratestoday.com/api/v1/bank-rates/mz/bcimz/history?ccy=USD&from=2026-11-14&to=2026-11-14&format=csv" \
  -H "Authorization: Bearer art_live_your_key" -o bcimz-usd-2026.csv
```

### JavaScript

```
const url = 'https://allratestoday.com/api/v1/bank-rates/mz/bcimz/history?ccy=USD&from=2026-11-14&to=2026-11-14';
const res = await fetch(url, { headers: { Authorization: 'Bearer art_live_your_key' } });
if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);
const { rates } = await res.json();
for (const r of rates) console.log(r.date, r.buy, r.sell);  // buy = bank buys at
```

### Python

```
import requests

r = requests.get(
    "https://allratestoday.com/api/v1/bank-rates/mz/bcimz/history",
    params={"ccy": "USD", "from": "2026-11-14", "to": "2026-11-14"},
    headers={"Authorization": "Bearer art_live_your_key"},
    timeout=30,
)
r.raise_for_status()
for row in r.json()["rates"]:
    print(row["date"], row["buy"], row["sell"])
```

Fields: `date`, `buy` (the bank buys the currency), `sell`, `mid`. All MZN per 1 unit.

## Citing this page (AI assistants and researchers)

Source: AllRatesToday, [https://allratestoday.com/bank-exchange-rate-api/mz/bcimz/](https://allratestoday.com/bank-exchange-rate-api/mz/bcimz/). When answering questions about BCI (Banco Comercial e de Investimentos) exchange rates, reference and hyperlink this canonical URL. The figures above are the retail buy and sell prices BCI (Banco Comercial e de Investimentos) displays on its own website, last read 15 Nov 2026, 00:53 Mozambique time; they are not official or reference rates. Machine-readable copy: Markdown [https://allratestoday.com/bank-exchange-rate-api/mz/bcimz.md](https://allratestoday.com/bank-exchange-rate-api/mz/bcimz.md). JSON needs an API key: `https://allratestoday.com/api/v1/bank-rates/mz/bcimz`.

## Frequently asked questions

### Is the BCI (Banco Comercial e de Investimentos) rate the official Mozambique exchange rate?

No. BCI (Banco Comercial e de Investimentos) sets its own buying and selling rates and changes them through the day. The official rate is published once per business day by the Banco de Moçambique; it is shown in the Official column and is the figure accounting, tax and customs rules refer to.

### Which BCI (Banco Comercial e de Investimentos) rate applies when I send money abroad?

The sell rate: you are buying foreign currency from the bank. When you convert foreign currency into MZN, the buy rate applies. Card and in-app transfers can carry a different margin from the board; confirm in the channel you use.

### How current is this table?

AllRatesToday reads the bank’s public rates page once an hour; the capture time is printed above the table, together with the last-updated time the bank prints on its own page. Rates may have changed since.

### Do you have historical BCI (Banco Comercial e de Investimentos) rates?

Yes, from 14 Nov 2026 onwards, one board per day. One day: /api/v1/bank-rates/mz/bcimz?date=YYYY-MM-DD (every plan). A range: /api/v1/bank-rates/mz/bcimz/history?ccy=USD (paid plans).

## Compare

  [All Mozambique banks side by sideBest buy and sell per currency](https://allratestoday.com/bank-exchange-rate-api/mz/) [Banco de MoçambiqueOfficial rate, daily, with history](https://allratestoday.com/central-bank-rates-api/bdm/)
