efrisapi.com

Error codes / 2253

EFRIS error 2253 — that seller's reference number has already been issued

The reference number on this document has already been used for this taxpayer. Because the reference comes from your own accounting system, two tills — or two integrators on one TIN — can generate the same number for genuinely different documents.

Deciding how to handle this is a business decision, not a technical one. Read the trade-off below before automating a retry.

What it actually means

URA returns: Invoice(s)/receipt(s) (…) with the same Seller's Reference Number have already been issued! Total invoices Issued(1)! EFRIS enforces uniqueness of the seller reference per taxpayer, across every device and integration on that TIN.

The fix

Either resubmit under a uniquified reference, or treat the rejection as proof the document already reached URA. Which is correct depends on why the collision happened.

# Pseudocode. On 2253, uniquify the seller reference and resubmit,
# staying inside URA's 50-character limit.

try:
    submit_invoice(document)
except EfrisError as exc:
    if exc.code == "2253":
        base   = document["sellerDetails"]["referenceNo"]
        suffix = random_hex(6).upper()
        ref    = f"{base}-{suffix}"
        if len(ref) > 50:
            ref = f"{base[:50 - len(suffix) - 1]}-{suffix}"
        document["sellerDetails"]["referenceNo"] = ref
        submit_invoice(document)
    else:
        raise

Why this happens

The trade-off. Uniquifying and resubmitting favours "every sale reaches URA" over "never submit twice". That is right when two tills genuinely produced the same number for different sales — rejecting the second would leave a real sale unfiscalised. It is wrong when your own caller is retrying after a lost response, because the sale is already recorded and you would fiscalise it twice under two references. If your client retries, disable the automatic recovery and reconcile with T106 or T117 first.

Related


EFRIS Gateway handles this case already — it is one of the rejections it was calibrated against. It is a complete multi-tenant EFRIS platform, sold as source. This page stays free either way.