Skip to main content
POST
/
invoices
/
{id}
/
storno
Storno (reverse) an invoice
curl --request POST \
  --url https://api.contazen.ro/v1/invoices/{id}/storno \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "data": {
    "id": "inv_1a2b3c4d5e",
    "object": "invoice",
    "number": "<string>",
    "series": "<string>",
    "date": "2023-12-25",
    "total": 123,
    "full_number": "<string>",
    "due_date": "2023-12-25",
    "client_id": "<string>",
    "client": {
      "id": "cli_1a2b3c4d5e",
      "object": "client",
      "name": "<string>",
      "email": "jsmith@example.com",
      "phone": "<string>",
      "cui": "<string>",
      "cui_prefix": "<string>",
      "rc": "<string>",
      "client_type": "b2b",
      "address": "<string>",
      "city": "<string>",
      "county": "<string>",
      "country": "<string>",
      "postal_code": "<string>",
      "iban": "<string>",
      "bank": "<string>",
      "contact_person": "<string>",
      "created_at": 123,
      "updated_at": 123,
      "metadata": {
        "invoices_count": 123,
        "total_invoiced": 123,
        "unpaid_total": 123
      },
      "stats": {
        "total_invoiced": 123,
        "total_collected": 123,
        "avg_payment_days": 123,
        "last_payment": {
          "date": 123,
          "amount": 123,
          "currency": "<string>",
          "bill_id": "<string>",
          "bill_number": "<string>"
        },
        "monthly_series": [
          {
            "label": "Mar 2026",
            "year": 123,
            "month": 123,
            "invoiced": 123,
            "collected": 123
          }
        ]
      }
    },
    "currency": "RON",
    "exchange_rate": 123,
    "subtotal": 123,
    "vat_amount": 123,
    "subtotal_ron": 123,
    "vat_amount_ron": 123,
    "total_ron": 123,
    "items": [
      {
        "description": "<string>",
        "quantity": 123,
        "price": 123,
        "id": 123,
        "product_id": "<string>",
        "description_extended": "<string>",
        "vat_rate": 19,
        "vat_key": 123,
        "unit": "buc",
        "ubl_um": "H87",
        "ubl_nc": "<string>",
        "ubl_cpv": "<string>",
        "subtotal": 123,
        "vat_amount": 123,
        "total": 123,
        "save_as_product": true
      }
    ],
    "payments": [
      {
        "id": "<string>",
        "object": "payment",
        "amount": 123,
        "currency": "<string>",
        "date": "2023-12-25",
        "type": "receipt",
        "type_description": "<string>",
        "reference": "<string>",
        "invoice": {
          "id": "<string>",
          "number": "<string>",
          "total": 123,
          "currency": "<string>"
        },
        "client": {
          "id": "<string>",
          "name": "<string>"
        },
        "created_at": 123
      }
    ],
    "is_paid": true,
    "paid_at": "2023-12-25",
    "is_void": true,
    "voided_at": "2023-11-07T05:31:56Z",
    "void_reason": "<string>",
    "is_draft": true,
    "is_storno": true,
    "storno_for": "<string>",
    "document_type": "fiscal",
    "payment_method": "<string>",
    "notes": "<string>",
    "observations": "<string>",
    "efactura_enabled": true,
    "efactura_status": "pending",
    "efactura_submission_id": "<string>",
    "created_at": "2023-11-07T05:31:56Z",
    "modified_at": "2023-11-07T05:31:56Z"
  },
  "meta": {
    "version": "v1",
    "request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "response_time": "23.45ms"
  }
}

Overview

Produces a storno (reversal) invoice from a fiscal source invoice. The new invoice mirrors every line of the source with negated amounts, receives its own number from the same series, and is linked back to the source via storno_bill_id. Both invoices record a history event — the source gets a storno entry and the new reversal gets a storned entry. The whole flow runs inside a transaction: if any step fails, nothing is persisted.

Preconditions

  • The source must be a fiscal invoice (not a draft or proforma).
  • The source itself must not already be a storno.
  • The source must not have been storno’d before (a single invoice can only be reversed once).
Calls that violate these preconditions return 400 with codes invoice_cannot_be_storned or invoice_already_storned.

Deleting vs. storning

Storno is the ANAF-compliant way to cancel a fiscal invoice. Prefer /invoices/{id}/storno over DELETE /invoices/{id} once an invoice has been issued to a client or sent to SPV — deleting a fiscal invoice is blocked by the series-continuity rules.

Authorizations

Authorization
string
header
required

Use your API key (sk_live_xxx or sk_test_xxx)

Path Parameters

id
string
required

Source invoice CzUid

Response

Storno invoice created

success
boolean
data
object
meta
object