DeepSeek Added in 0.9.17
The DeepSeek provider runs DeepSeek's models with your own DeepSeek API key. DeepSeek has no agent of its own, so OAR runs Claude Code on the relay's machine and points it at DeepSeek's Anthropic-compatible API. The agent works in the conversation's folder with Claude Code's tools; DeepSeek's model does the thinking. Turns are billed to the DeepSeek account the key belongs to.
Because the agent is Claude Code, a DeepSeek chat has most of what a Claude chat has: all four relay modes, question cards, the plan board, sub-agents, steering and background tasks. The table of all providers is on Providers at a glance.
The API key #
You need a DeepSeek API key and nothing else: there is no CLI to install, and no Claude account is involved. Open Settings → Providers → DeepSeek, the last sub-tab.
| Control | Default | What it does |
|---|---|---|
| Enable DeepSeek for New Chat model selection | on once a key is saved | Offers DeepSeek in New Chat. It cannot be ticked before a key is saved, and it applies as soon as you switch it. |
The key field (Deep) |
empty | Your key. Once a key is saved, the field reads Saved API key (enter to replace). Leave it empty to keep the saved key. |
| Default model | deepseek- |
The model a new DeepSeek conversation starts with. See Models. |
| Commit attribution | OAR | What commits say. See Commit attribution. |
| Monthly budget (optional), Budget currency | empty, USD ($) | A budget bar on the usage card. See Monthly budget. |
| Starting balance (optional) | empty | What the balance bar measures from. See Starting balance and top-ups. |
| Advanced → Base URL | empty | Another endpoint instead of DeepSeek's own. See Another endpoint. |
| Save DeepSeek settings | Saves every field above. The first save of a key also switches DeepSeek on. | |
| Remove saved key | Asks Remove the saved Deep, then deletes the key, the discovered models and your Select Models choice, and switches DeepSeek off. The default model stays. |
|
| Import usage export | At the foot of the tab: the two files of DeepSeek's usage export, Amount file and Cost file, for the usage card. See Import usage export. |
The line under the fields says where you are:
| Status | Meaning |
|---|---|
Not configured. New conversations use Git |
No key is saved. |
API key saved but currently disabled. Enable it to allow Deep |
A key is saved and the switch is off. |
Deep |
Ready. |
Then start a conversation as usual: in New Chat, pick DeepSeek. See Starting a conversation.
Where the key is kept, and who sees it #
- The key is stored in the relay's database on the relay's machine. The panel never shows it again, and it is never sent to a browser: the settings only say that a key is saved.
- It reaches only the workers of DeepSeek chats. Where sessions run under tmux, it goes to them through a file only the relay's user can read. Inside the worker it becomes Claude Code's token for DeepSeek's endpoint.
- It is sent to the base URL and nowhere else: to DeepSeek's API, or to the address under Advanced. When the relay's own requests to DeepSeek (the model list, the balance) fail, the error text has the key taken out.
- It cannot be set through the environment: a
DEEPSEEK_in the relay's own environment is not passed on, the workers get the panel's key.API_ KEY - The agent can read it. Claude Code holds the key in its environment, so the
commands the agent runs can see it, as with any key a CLI holds. The relay
replaces the key with
[redacted]in everything a session worker posts (replies, thoughts, tool activity, sub-agent text, questions, task output) before it stores, shows or logs it, and the DeepSeek worker does the same in its own log. Where a text was cut, the part of the key in it goes too, from 8 characters on. A key you changed or removed stays redacted until the relay restarts. Task output the relay reads from a task's file is cleaned by the shape of keys and long tokens, not by the saved key's own text. This keeps the key out of what OAR stores and shows. It is no barrier against the agent, which can change the text before printing it, call the relay's local API itself or read the relay's database.
Saving, changing and removing the key #
- The key must be 8 to 512 characters, without spaces. Otherwise saving fails
with
The Deep.Seek API key has an invalid format - Saving a key while DeepSeek is on asks DeepSeek for its models (see Models). If that fails, the notice says why, and the list falls back as described there.
- Saving a different key clears the discovered models and stops the DeepSeek workers that are running, including one in the middle of a turn, so change the key between turns. The next message starts them with the new key.
- Removing the key is refused while any DeepSeek conversation has sent a
message or has one queued:
Cannot remove the DeepWhen it goes through, conversations that have not sent a message yet move back to Copilot. Switching DeepSeek off moves nothing; it only takes DeepSeek out of New Chat.Seek API key while N Deep Seek conversation(s) still exist. Switch Deep Seek off for new conversations instead.
Models #
| Model | Shown as | Images |
|---|---|---|
deepseek- (the default) |
DeepSeek Flash | Yes |
deepseek- |
DeepSeek V4 Pro | No |
Where the list comes from. The relay asks DeepSeek's GET / with
your key and keeps the IDs that start with deepseek-. It asks when you save
a key, when you switch DeepSeek on again, when you change the base URL, and on
Refresh in 🤗 Select Models.
A request gives up after 10 seconds. Until a list has been read, the pickers
offer deepseek- and deepseek-. A failed read, or one that lists
no DeepSeek model, keeps the list the relay had; after Refresh the notice
reads Deep.
Which ones show. 🤗 Select Models → DeepSeek chooses which models the composer offers; 💾 Save enabled models keeps the choice. With no choice made, all of them are offered. The Default model is always offered and cannot be unticked.
Per message. A conversation can change its model between turns. A switch
restarts the conversation's Claude Code with the new model before the next
message; the conversation goes on where it was. A model the relay does not
offer is refused with Deep.
Images. DeepSeek V4 Pro takes no image input, and neither does a model OAR
does not know. Such a model gets every attached image as a file path instead.
Once a conversation holds images, a switch to such a model is refused, because
the history it resumes would fail the request:
Deep
Reasoning effort #
DeepSeek's models always think. The effort picker
offers how much: low, high or max, the same three for every model.
high is the default.
There is no none: Claude Code never asks DeepSeek to switch thinking off,
so OAR does not offer it, and the 🧠 dialog has no Thinking controls
for DeepSeek.
The effort is set when Claude Code starts. A different effort therefore restarts the conversation's Claude Code between turns, like a model switch, and the conversation goes on where it was.
An effort that comes from elsewhere, for example from an agent on another
relay, is mapped to DeepSeek's levels: none and minimal run as low,
medium and xhigh as high, ultra and ultracode as max. A message
without an effort, or with a name DeepSeek has no level for, keeps the
conversation's effort. A new conversation without an effort starts at high; one created
with a name DeepSeek has no level for starts at low.
The folder and the session #
A DeepSeek chat runs the same worker as a Claude chat, built on the Claude
Agent SDK, on the relay's machine: one per conversation, in the conversation's
working folder.
Its Claude Code is the build bundled with the Agent SDK, or the claude
binary the relay uses for Claude chats when one is set (CLAUDE_,
which a CLI install from the Claude sub-tab sets). Claude Code is pointed
at <base URL>/, DeepSeek's Anthropic-compatible API. The first turn
of a worker shows the activity line Starting Claude Code for Deep.
Its own configuration folder. Claude Code in a DeepSeek chat keeps its
state, sessions and transcripts in deepseek- in the relay's
data folder, readable by the relay's user
only. It never uses ~/. (or CLAUDE_): the machine's Claude
login, your global settings, skills, plugins and MCP servers are not in reach.
A repository's own CLAUDE. and . folder still apply, except that
they cannot reroute DeepSeek's traffic.
No Claude login. The worker hands Claude Code the DeepSeek key and nothing of the machine's Claude configuration. A Claude login token in the relay's environment does not reach it. OAR also switches off Claude Code's own traffic to Anthropic, such as update checks and telemetry.
What works as on Claude. These come from the same runner as Claude chats and behave as described on Claude:
- all four relay modes; plan ends with the Plan ready for review board;
- tools on the relay's machine, question cards with multi-select, the sub-agent viewer, background tasks in the task panel, Stop, and steering (the send button reads Steer during a turn);
- OAR's
previewandrelay_agent tools;tool - the Session root button in the file browser,
which opens the session's folder under
deepseek-;claude/ projects - the background command limit from the Claude sub-tab;
- resuming after a restart, from the stored session ID. Deleting a DeepSeek
conversation deletes its Claude Code session in
deepseek-; the spend it added stays in the usage card's totals.claude
Sub-agents stay on the chat's model. Claude Code names its models by aliases. OAR pins them: a sub-agent the agent asks for as "opus", "sonnet" or "fable", or one without a model, runs on the conversation's model; one asked for as "haiku" runs on DeepSeek Flash. Claude Code's own small calls, such as titles and summaries, also go to DeepSeek Flash. A sub-agent's badge names the DeepSeek model. A model switch restarts Claude Code so the pins follow it.
Context and compaction. DeepSeek's models have a window of 1,048,576
tokens. The composer's Context window chip shows that one window, as
1.; there is nothing to choose. The 🧠 dialog
shows the context as Claude Code reports it. A DeepSeek chat compacts at
400K tokens unless you set another window with the dialog's
auto-compact slider: far below the window,
so a turn after DeepSeek's cache has expired does not send most of a million
tokens again at the cache-miss price.
Attachments. On a model that takes images, images up to 5 MB go inside the message; larger images and other files are passed as paths for the agent to read. See Models for the models that take no images.
Not on DeepSeek. Claude's plan meters and the usage-limit pause do not apply. DeepSeek replies have no usage line; the cost is on the usage card.
Folder settings cannot reroute DeepSeek #
A . or . in the folder can
set environment variables and a key helper for Claude Code. In a DeepSeek chat
the relay pins the base URL and the key over them, and with them the proxy,
TLS trust, provider and credential settings: the folder's settings cannot point
Claude Code at another address, swap the key for another one or route the
requests through a proxy of their own. The key is not put on the command line
for this.
Added in 0.9.18 No hooks. Claude Code in a DeepSeek chat starts with all
hooks and the status line off: neither those of DeepSeek's own settings
folder nor the chat folder's (., settings.)
nor a plugin's run. They would run as the relay's user with the key in their
environment, and a folder's Session hook even before the relay had
pinned the endpoint and key. The setting is on Claude Code's command line, so
a settings file cannot turn them back on. Hooks in managed settings, the
machine administrator's, still run. In 0.9.17 those hooks ran; going back to
0.9.17 turns them on again.
If Claude Code does not take the pinned settings within a minute, the turn
fails before anything is sent, with Claude Code did not take the Deep Send the
message again; if it fails again, update the relay and look in its log for the
reason.
What goes to DeepSeek #
Everything the agent reads and writes during a turn goes to DeepSeek: your
messages, the files it opens, the output of its commands, and the context
Claude Code adds to every session, such as the folder's path and the
CLAUDE. files. During a measured turn, DeepSeek's API was the only host
Claude Code talked to.
Commit attribution #
| Choice | Commits | Pull requests |
|---|---|---|
| OAR (default) | End with Co-, with the name of the model in use. |
End with 🤖 Generated with [Open Agent Relay](https://. |
| Off | No attribution line. | No attribution line. |
There is no Vanilla: Claude Code's own lines would credit Claude for DeepSeek's work. A folder's own choice, set in the 🧠 dialog of a Claude conversation in that folder, applies to DeepSeek chats there too, with Vanilla read as OAR. A DeepSeek chat's own 🧠 dialog has no attribution select.
Another endpoint #
Advanced → Base URL takes another address, for a proxy for example. Leave
it empty for https://. The address must use https, or
http on this machine (localhost, 127. or ::), and must not
contain a user name, password, query or fragment. The key is sent there and
nowhere else. Saving a new address clears the discovered models and reads
them again from it. A DeepSeek worker that is already running keeps the
address it started with.
WebSearch and WebFetch #
Claude Code has two web tools, and they run in different places:
| Tool | Where it runs | What it costs |
|---|---|---|
| WebSearch | On DeepSeek's servers, through DeepSeek's search. | A search request: $0.75 or ¥5 per 1,000 successful ones, from 2026-10-31 16:00 UTC. Before that they are counted at no cost. |
| WebFetch | On the relay's machine: Claude Code fetches the page itself and has DeepSeek Flash read it. | Only the Flash tokens, booked like any other turn's. No request is billed. |
The usage card counts the searches on a Search row of their own. The count comes from Claude Code's own totals, which count each search its WebSearch tool makes.
The usage card #
📊 Check Usage has a DeepSeek card while DeepSeek is switched on. DeepSeek is pay-as-you-go, so the card shows money: the account balance, read live with the saved key, and what this relay's DeepSeek turns have cost, estimated from their tokens at DeepSeek's prices (see How the estimate is made).
The spend is shown in the currency of the balance (the one with money on it), or in US dollars when there is no balance to go by. The card shows everything at once, figures first, and fits a phone's width. From top to bottom:
| Part | What it shows |
|---|---|
| Balance (USD), Balance (CNY) bars | One bar per currency with money on it: what is left, measured against the balance after its last top-up. The line under it says what it is measured from. See Starting balance and top-ups. |
| Monthly budget (USD) or (CNY) bar | Only when a budget is set. See Monthly budget. |
| Figures | The balance per currency, with what was topped up and granted, and Estimated spend on this relay since the first DeepSeek turn. |
| Daily spend, last 30 days | A column per UTC day, stacked by model. Hover or tap a column for the day's total and its share per model. |
| Where the money goes | A bar per model, split into Cache hit, Cache miss, Output and, once there are any, Search. Its head says what the cache saved. |
| Estimated spend by model | A row per model with its turns and, once there are any, a Search row: what the web searches cost and how many there were, such as 3 searches. |
| Tokens by model | Cache hit, cache miss and output tokens per model, and how much of the input came from the cache. |
| The note on the estimate | Prices, peak hours and what is not counted, with a Prices link. |
The bars change colour as they fill and turn red at 90 percent, as on every card; see Reading a card. The foot links to DeepSeek usage and Top up on DeepSeek's platform.
Once you have imported DeepSeek's usage export, the card shows DeepSeek's own figures on the days the export covers, and the labels read Spend, actual and estimated and Spend by model, actual and estimated. See Import usage export.
The charts. They are drawn without a chart library and work in both colour schemes. On Daily spend a model keeps its colour from one read to the next: DeepSeek Flash first, then DeepSeek V4 Pro, then other models by name; with more than four models, the fourth and later share Other models. Every column and bar has a text equivalent for screen readers and a tooltip on hover, focus or tap, and each chart has an As a table fold with the same figures. Daily spend is left out when there was no spend in the last 30 days, and its note says when the daily history on this relay starts, if that is later. The cache saving is the cache hits at the cache-miss price, less what they cost.
When the balance cannot be read. A read gives up after 5 seconds. An
answer is kept for a minute, a failure for 15 seconds. When a read fails, the
card is marked Partial, says The balance could not be read: …, and shows
the last balance it read, as read with its time. When DeepSeek reports the
balance as too low for API calls, the card says Deep with a
Top up link.
An agent can read the same card with
relay_'s usage action.
Monthly budget #
Monthly budget (optional) on the DeepSeek sub-tab adds a budget bar to the card: this relay's estimated DeepSeek spend of the calendar month against the amount.
- Budget currency: USD ($) (preselected for a new budget), CNY (¥), or The balance's currency (may change). The bar is labelled with its currency, for example Monthly budget (CNY), and counts the spend in that currency, whatever the balance is in. A budget saved before the currency could be chosen follows the balance's currency.
- The bar is marked estimated. With days of an imported usage export in the month (and the budget in the card's currency), it is not, and its note says the spend is actual on those days and estimated on the others. It changes colour at 50 and 75 percent of the budget and turns red at 90.
- It counts by UTC day and starts over on the 1st of the month (UTC); the bar shows when it resets.
- Leave the amount empty, or enter
0, for no bar. Amounts keep two decimals.
Starting balance and top-ups #
DeepSeek tells OAR the balance, not what you paid in. The balance bar therefore needs something to measure against, and OAR keeps that per currency on the relay:
- Without a starting balance, the bar measures from the balance right
after its last top-up. Until the relay has seen a top-up, it measures from
the highest balance it has read, so the bar starts empty and fills with the
spend. The line under the bar names the amount and the day it was read, for
example
Measured from ¥110.00, the highest balance seen (2026- 10- 20). - A top-up (or a grant) is any rise of the balance between two reads. The relay reads the balance when the card is opened (or an agent reads the card), so it notices a top-up at the next read. From then on the bar measures from the balance after it.
- Starting balance (optional) sets the amount to measure from instead,
for example your first top-up. It is in the balance's currency and applies
to the bar of that currency. The line under the bar reads
Measured from …, the starting balance set on the DeepLeave it empty to measure as without one.Seek tab.
What a top-up does to a starting balance. A top-up after you set it
replaces it: the bar measures from the balance after the top-up, and the
DeepSeek sub-tab says No longer used: the balance rose on <date> (a top- To use a starting balance again, type an amount into the field (the
same amount works) and save. Saving the sub-tab's other fields does not bring
the old amount back.
A top-up made before you set the starting balance does not replace it, even when the balance is now above the amount. Saving a starting balance reads the balance right then, and a rise replaces the amount only when the relay had read the balance after you set it. So you can top up, enter the new balance and save. If that read fails, the amount stays until a top-up after the relay's next successful read.
Import usage export #
The card's spend is an estimate. For DeepSeek's own figures, export your usage on DeepSeek's usage page (DeepSeek usage at the card's foot links there) and import it. The export is two CSV files for the period you choose: the amounts (tokens and requests per model and API key, with their prices) and the cost.
- Export a period on DeepSeek's usage page.
- In Settings → Providers → DeepSeek, under Import usage export, choose the Amount file and the Cost file, then press Import usage export.
- The line below the button says what was imported (the rows, the days, the models) and whether the card uses it.
What the card shows then. On the days the export covers, the figures of the key saved on the tab replace the estimate: tokens, requests and cost per model, by the export's days. Every other day stays estimated, a gap between two imports included. The labels read Spend, actual and estimated and Spend by model, actual and estimated, a model's row adds how many requests the export counted, and a note names the end of the last export.
- The saved key only. The export lists every key of the account; the card counts the saved key's rows, from wherever the key was used, not only from this relay.
- One currency. The card uses only rows in its own currency, the balance's. When the export is in another one, the import says so, and the card stays estimated.
- Searches. On export days the export's cost includes the web searches, so the card adds no search estimate there.
- Days left out. A day with a period that has not ended yet (today, in an export taken during the day), and the export days up to and including the day this relay's daily history starts, because not all of their turns are in that history. A note says so.
- Time zones. The export's days run in the time zone it was taken in, the estimate's in UTC. At the edge between an export day and an estimated day, an hour can be counted twice or not at all.
- Monthly budget. With export days in the month, the budget bar is no longer marked estimated.
How the import checks the files. For every period and model, the amounts
times their prices must add up to the cost file. Otherwise nothing is
imported, and the line says The files do not match for …. Importing the
same files again changes nothing. A later export replaces, for each key in
it, the days it covers, also when it was taken in another time zone. The two files
together may be up to 2 MB. The relay keeps the rows in a table of their own,
with each key masked to its first and last characters; its own counts of your
turns are not changed. Agents of a paired relay cannot import.
On the relay's machine, npm run deepseek: in OAR's folder does the same. Name the
database, copilot. in the
data folder: without it, the command uses data/ beside the server.
How the estimate is made #
DeepSeek reports no cost per request, and Claude Code's own cost figure is at Claude's prices. OAR therefore counts the tokens each DeepSeek turn on this relay reports, per model, and prices them at DeepSeek's published prices (read 2026-10-19), in US dollars and in yuan. Per million tokens, off-peak:
| Model | Cache hit | Cache miss | Output |
|---|---|---|---|
| DeepSeek Flash | $0.003 · ¥0.02 | $0.15 · ¥1 | $0.60 · ¥4 |
| DeepSeek V4 Pro | $0.022 · ¥0.15 | $0.66 · ¥4.5 | $1.98 · ¥13.5 |
- Peak and off-peak. Peak prices are exactly twice these. Peak is Monday to Friday 01:00–04:00 and 06:00–10:00 UTC (09:00–12:00 and 14:00–18:00 Beijing time); the card names those hours in your browser's time zone. Each turn is priced by its own time.
- Holidays. On Chinese public holidays DeepSeek charges off-peak prices all day. The estimate does not know those dates, so turns at peak hours on a holiday are counted at double the real price.
- Searches. Web searches are counted at $0.75 or ¥5 per 1,000 from 2026-10-31 16:00 UTC (2026-11-01 00:00 Beijing time), the same at any hour; earlier ones are counted at no cost. See WebSearch and WebFetch.
- Not billed. DeepSeek does not bill the
count_requests Claude Code sends at each session start, and the estimate does not count them.tokens - Unknown models.
deepseek-andv4- flash deepseek-are priced as Flash. A model without a known price gets no estimate: its row readsv4- flash- vision- exp no price known, and the total says how many models it leaves out. - This relay only. Turns on other relays, and other use of the key, are not in it. DeepSeek's usage page, linked from the card, has every request on the account.
- Actual figures. On the days an imported usage export covers, the card shows DeepSeek's own figures for the saved key instead of the estimate, from every use of the key.
- Restarts. A Claude Code process that starts over, or a report that arrives late or twice, is booked once. One case remains: a late report from an earlier process that arrives after a newer one started is booked in full, and so is the newer process's next report.
- Rows under a Claude name. Builds from before sub-agents were pinned to the chat's model booked some turns under a Claude model name. The relay folds those rows into the DeepSeek model that served them when it starts. A folded row is priced at one time, its last turn's, so a row that spans peak and off-peak turns is approximated: its token cost by up to a factor of two.
A turn time more than 5 minutes ahead of the relay's clock is taken as the relay's own time.
Limits #
- Thinking cannot be switched off, and
noneruns aslow. - DeepSeek V4 Pro takes no images; a switch to it is refused once a conversation holds images.
- The spend is an estimate, of this relay's turns only, and overcounts peak turns on Chinese public holidays. Only the days of an imported usage export show DeepSeek's own figures.
- A changed effort or model restarts the conversation's Claude Code between turns.
- Claude Code's server-side web fetch is not available on DeepSeek; WebFetch runs on the relay's machine.
- No usage-limit pause: a turn refused for the balance fails, and you send it again after topping up.
Error codes #
A failed DeepSeek reply ends with Error code: relay.<code>. and, for some
codes, buttons that go straight to the fix:
| Code | When | Buttons |
|---|---|---|
relay. |
DeepSeek refused the request for the balance (HTTP 402). | Top up DeepSeek (opens DeepSeek's top-up page), DeepSeek settings |
relay. |
DeepSeek did not accept the key (HTTP 401). | DeepSeek settings |
relay. |
DeepSeek is at its concurrency limit for the account (HTTP 429). | None |
relay. |
Any other refused request. | None |
relay. |
Any other failure of the turn. | None |
DeepSeek settings opens Settings → Providers → DeepSeek. Other codes
follow the same pattern, relay. and Claude Code's reason, for example
relay. (HTTP 529) or relay.. None
of them carries the Claude account advice.
Troubleshooting #
| Problem | What to do |
|---|---|
| DeepSeek is missing from New Chat | Save a key in Settings → Providers → DeepSeek, and check that Enable DeepSeek for New Chat model selection is ticked. |
relay., or the card says the balance is not enough for API calls |
Press Top up DeepSeek, add money on DeepSeek's platform, and send the message again. |
relay. |
The key is wrong or was revoked. Paste a valid key and save, between turns. |
relay. |
Wait a moment and send the message again. |
Deep, or Deep |
Check the key and the base URL, then press Refresh in 🤗 Select Models. Until it works, the last list, or deepseek- and deepseek-, stays offered. |
Deep |
The model is not on the relay's list. Refresh the list, or pick another model. |
… takes no images, and this conversation already has some. |
Stay on DeepSeek Flash, or start a new DeepSeek conversation for the text-only model. |
Deep |
A conversation of another provider cannot switch to a DeepSeek model. Start a new chat on DeepSeek. |
Cannot remove the Deep |
Archive or delete those conversations, or switch DeepSeek off instead. |
Claude Code did not take the Deep |
Send the message again. If it fails again, the Claude Code the relay runs does not take the pinned settings: update the relay and look in its log for the reason. |
The Deep |
Use https, or an http address on this machine. |
| The balance bar starts from the wrong amount | Set Starting balance on the DeepSeek sub-tab, in the balance's currency. |
The sub-tab says the starting balance is No longer used |
A top-up replaced it. Type the amount again and save, or clear the field. |
| The usage card's spend is lower than DeepSeek's usage page | The card counts this relay's DeepSeek turns only. DeepSeek's page has every request on the account. For its figures on the card, import the usage export. |
| The usage card's spend is higher on a holiday | Peak hours on Chinese public holidays are counted at the peak price; DeepSeek charges off-peak. Importing the usage export puts DeepSeek's own figures on those days. |
The files do not match for … |
The amount file and the cost file are from different exports. Export both for the same period and import them together. |
The … file is not a Deep |
Choose the files as DeepSeek's usage page exported them, the amount file under Amount file and the cost file under Cost file. |
| The import says the saved key is not in this export | The export has no usage of the key saved on the tab: it is another account's, or the key was not used in that period. The card stays estimated. |
| The import says the card does not use the figures | The export is in another currency than the balance. The card uses only rows in the balance's currency. |