SoftSDC

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:

RangeTypeMeaning
0xxxInfoThe operation worked
1xxxWarningSoftSDC still works, but needs attention
2xxxErrorThe operation failed. Action is needed.
6xxxManufacturerExtra 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)

CodeNameMeaning
0000All OKThe command ran without warnings or errors
0100PIN OKThe PIN is correct
0210Internet availableInternet connection is available (optional)
0220Internet unavailableInternet connection is not available (optional)

Warning codes (1xxx)

CodeNameMeaningWhat to do
1100Storage 90% fullStorage for audit packages is 90% fullRun an audit soon to free space
1300Smart card not presentNo secure element card in the readerInsert the smart card
1400Audit requiredTotal sale and refund amount reached 75% of the SE limitRun an audit to keep working
1500PIN requiredThe POS must send the PINSend the PIN with POST /api/v3/pin
1999Undefined warningSomething is wrong, but no specific warning appliesRead 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)

CodeNameMeaningWhat to do
2100PIN not OKThe PIN sent by the POS is wrongCheck the PIN and try again. Watch the remaining attempts.
2110Card lockedToo many wrong PIN attemptsThe 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)

CodeNameMeaningWhat to do
2210SE lockedThe secure element is lockedNo more invoices can be signed until an audit is done. Run an audit now.
2220SE communication failedSoftSDC cannot connect to the secure element appletCheck the card. Remove and reinsert it. Restart the service if needed.
2230SE protocol mismatchThe secure element does not support the requested protocol versionUpdate SoftSDC or contact support. Reserved for later use.

Configuration errors (23xx to 24xx)

CodeNameMeaningWhat to do
2310Invalid tax labelsThe POS sent tax labels that are not definedUse labels that match the tax rates in GET /api/v3/status
2400Not configuredSoftSDC is not fully set up to sign invoicesRun 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.

CodeNameMeaning
2800Field requiredA required invoice field is missing
2801Field value too longThe value is longer than allowed
2802Field value too shortThe value is shorter than required
2803Invalid field lengthThe value length does not match the expected length
2804Field out of rangeThe value is outside the expected range
2805Invalid field valueThe value is invalid or malformed
2806Invalid data formatThe format is wrong, for example non-ASCII digits in the PIN
2807List too shortThe list of items or tax labels is empty
2808List too longThe list has too many elements or bytes
2809Secure element expiredThe certificate on the smart card has expired

Manufacturer codes (6xxx)

CodeMeaning
6001Manufacturer-specific info
6xxxReserved 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

  1. Set a detailed log level in settings.
  2. Read the application logs around the error.
  3. Check the timestamps for timing problems.
  4. 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.

On this page