Error codes
Every SoftSDC status code with its meaning and fix. Info, warning, error and manufacturer codes, response format and sample handling code.
SoftSDC returns 4-digit status codes. The first digit shows the severity:
| Range | Type | Meaning |
|---|---|---|
0xxx | Info | The operation worked |
1xxx | Warning | SoftSDC still works, but needs attention |
2xxx | Error | The operation failed. Action is needed. |
6xxx | Manufacturer | Extra detail from SoftSDC |
Response format
{
"gsc": ["2100"], // General Status Codes
"mssc": [], // Manufacturer-Specific Status Codes
"messages": "Description", // Human-readable message
"details": "..." // Additional context (optional)
}The glossary explains GSC, MSSC and the other terms on this page.
Info codes (0xxx)
| Code | Name | Meaning |
|---|---|---|
0000 | All OK | The command ran without warnings or errors |
0100 | PIN OK | The PIN is correct |
0210 | Internet available | Internet connection is available (optional) |
0220 | Internet unavailable | Internet connection is not available (optional) |
Warning codes (1xxx)
| Code | Name | Meaning | What to do |
|---|---|---|---|
1100 | Storage 90% full | Storage for audit packages is 90% full | Run an audit soon to free space |
1300 | Smart card not present | No secure element card in the reader | Insert the smart card |
1400 | Audit required | Total sale and refund amount reached 75% of the SE limit | Run an audit to keep working |
1500 | PIN required | The POS must send the PIN | Send the PIN with POST /api/v3/pin |
1999 | Undefined warning | Something is wrong, but no specific warning applies | Read the messages field. The manufacturer may add specific codes. |
1100 and 1400 mean an audit will be needed soon. Plan for it so you are not interrupted.
Error codes (2xxx)
PIN errors (21xx)
| Code | Name | Meaning | What to do |
|---|---|---|---|
2100 | PIN not OK | The PIN sent by the POS is wrong | Check the PIN and try again. Watch the remaining attempts. |
2110 | Card locked | Too many wrong PIN attempts | The card is locked. Contact the Tax Authority to reset it. |
2110: card locked
The smart card cannot be used until the Tax Authority resets it. Keep your PIN private to prevent this.
Secure element errors (22xx)
| Code | Name | Meaning | What to do |
|---|---|---|---|
2210 | SE locked | The secure element is locked | No more invoices can be signed until an audit is done. Run an audit now. |
2220 | SE communication failed | SoftSDC cannot connect to the secure element applet | Check the card. Remove and reinsert it. Restart the service if needed. |
2230 | SE protocol mismatch | The secure element does not support the requested protocol version | Update SoftSDC or contact support. Reserved for later use. |
Configuration errors (23xx to 24xx)
| Code | Name | Meaning | What to do |
|---|---|---|---|
2310 | Invalid tax labels | The POS sent tax labels that are not defined | Use labels that match the tax rates in GET /api/v3/status |
2400 | Not configured | SoftSDC is not fully set up to sign invoices | Run initialization. Tax rates or the verification URL may be missing. |
Validation errors (28xx)
These come from wrong data in your request. Check the payload against the API reference.
| Code | Name | Meaning |
|---|---|---|
2800 | Field required | A required invoice field is missing |
2801 | Field value too long | The value is longer than allowed |
2802 | Field value too short | The value is shorter than required |
2803 | Invalid field length | The value length does not match the expected length |
2804 | Field out of range | The value is outside the expected range |
2805 | Invalid field value | The value is invalid or malformed |
2806 | Invalid data format | The format is wrong, for example non-ASCII digits in the PIN |
2807 | List too short | The list of items or tax labels is empty |
2808 | List too long | The list has too many elements or bytes |
2809 | Secure element expired | The certificate on the smart card has expired |
Manufacturer codes (6xxx)
| Code | Meaning |
|---|---|
6001 | Manufacturer-specific info |
6xxx | Reserved for manufacturer extensions |
Manufacturer codes add context. Do not base critical decisions on them. Use the standard codes for your logic.
Examples
{
"gsc": ["0100"],
"mssc": [],
"messages": "Success"
}Handling codes in your POS
Stop and alert someone.
const CRITICAL_ERRORS = ['2110', '2210', '2809'];
function handleResponse(code, message) {
if (CRITICAL_ERRORS.includes(code)) {
// Stop operations immediately
// Alert system administrator
// Log detailed error information
notifyAdministrator(code, message);
disableFiscalization();
}
}Troubleshooting by symptom
For problems outside the API, such as card readers and activation, see the troubleshooting guide.
Turn on detailed logs
- Set a detailed log level in settings.
- Read the application logs around the error.
- Check the timestamps for timing problems.
- For connection errors, check the network.
SoftSDC does not allow changes to the communication protocol parameters described in the Technical Instructions for E-SDC developers.
If a code keeps coming back, contact support with the logs and the exact message.
Integration guide
Connect your POS to SoftSDC. Learn the request flow, see client code in JavaScript, Python, C# and Java, and follow best practices for going live.
Troubleshooting
Fix common SoftSDC problems with startup, card readers, license activation, ports, smart card and PIN errors, invoices, sync and connections.