Skip to main content
POST
/
invoices
Create an invoice
curl --request POST \
  --url https://api.contazen.ro/v1/invoices \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "client_id": "<string>",
  "items": [
    {
      "description": "<string>",
      "quantity": 1.01,
      "price": 123,
      "product_czuid": "<string>",
      "description_extended": "<string>",
      "vat_rate": 19,
      "vat_key": 123,
      "unit": "buc",
      "ubl_um": "<string>",
      "ubl_nc": "<string>",
      "ubl_cpv": "<string>",
      "save_as_product": false
    }
  ],
  "client_data": {
    "name": "<string>",
    "email": "jsmith@example.com",
    "phone": "<string>",
    "cui": "<string>",
    "rc": "<string>",
    "address": "<string>",
    "city": "<string>",
    "county": "<string>",
    "country": "RO",
    "postal_code": "<string>",
    "iban": "<string>",
    "bank": "<string>",
    "contact_person": "<string>"
  },
  "series_id": "<string>",
  "reservation_token": "<string>",
  "force_chronology": true,
  "date": "2023-12-25",
  "due_date": "2023-12-25",
  "currency": "RON",
  "currency_rate": 123,
  "document_type": "fiscal",
  "is_draft": 0,
  "efactura_enabled": 1,
  "with_vat_inverted": 0,
  "payment_method": "<string>",
  "payment_type": "<string>",
  "payment_installments": 123,
  "send_email": false,
  "email_address": "jsmith@example.com",
  "delegate": {
    "delegate_name": "<string>",
    "delegate_ci": "<string>",
    "delegate_transport": "<string>",
    "delegate_date": "2023-12-25",
    "delegate_time": "<string>"
  },
  "info": "<string>",
  "observations": "<string>",
  "notes": "<string>"
}
'
import requests

url = "https://api.contazen.ro/v1/invoices"

payload = {
"client_id": "<string>",
"items": [
{
"description": "<string>",
"quantity": 1.01,
"price": 123,
"product_czuid": "<string>",
"description_extended": "<string>",
"vat_rate": 19,
"vat_key": 123,
"unit": "buc",
"ubl_um": "<string>",
"ubl_nc": "<string>",
"ubl_cpv": "<string>",
"save_as_product": False
}
],
"client_data": {
"name": "<string>",
"email": "jsmith@example.com",
"phone": "<string>",
"cui": "<string>",
"rc": "<string>",
"address": "<string>",
"city": "<string>",
"county": "<string>",
"country": "RO",
"postal_code": "<string>",
"iban": "<string>",
"bank": "<string>",
"contact_person": "<string>"
},
"series_id": "<string>",
"reservation_token": "<string>",
"force_chronology": True,
"date": "2023-12-25",
"due_date": "2023-12-25",
"currency": "RON",
"currency_rate": 123,
"document_type": "fiscal",
"is_draft": 0,
"efactura_enabled": 1,
"with_vat_inverted": 0,
"payment_method": "<string>",
"payment_type": "<string>",
"payment_installments": 123,
"send_email": False,
"email_address": "jsmith@example.com",
"delegate": {
"delegate_name": "<string>",
"delegate_ci": "<string>",
"delegate_transport": "<string>",
"delegate_date": "2023-12-25",
"delegate_time": "<string>"
},
"info": "<string>",
"observations": "<string>",
"notes": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
client_id: '<string>',
items: [
{
description: '<string>',
quantity: 1.01,
price: 123,
product_czuid: '<string>',
description_extended: '<string>',
vat_rate: 19,
vat_key: 123,
unit: 'buc',
ubl_um: '<string>',
ubl_nc: '<string>',
ubl_cpv: '<string>',
save_as_product: false
}
],
client_data: {
name: '<string>',
email: 'jsmith@example.com',
phone: '<string>',
cui: '<string>',
rc: '<string>',
address: '<string>',
city: '<string>',
county: '<string>',
country: 'RO',
postal_code: '<string>',
iban: '<string>',
bank: '<string>',
contact_person: '<string>'
},
series_id: '<string>',
reservation_token: '<string>',
force_chronology: true,
date: '2023-12-25',
due_date: '2023-12-25',
currency: 'RON',
currency_rate: 123,
document_type: 'fiscal',
is_draft: 0,
efactura_enabled: 1,
with_vat_inverted: 0,
payment_method: '<string>',
payment_type: '<string>',
payment_installments: 123,
send_email: false,
email_address: 'jsmith@example.com',
delegate: {
delegate_name: '<string>',
delegate_ci: '<string>',
delegate_transport: '<string>',
delegate_date: '2023-12-25',
delegate_time: '<string>'
},
info: '<string>',
observations: '<string>',
notes: '<string>'
})
};

fetch('https://api.contazen.ro/v1/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.contazen.ro/v1/invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'client_id' => '<string>',
'items' => [
[
'description' => '<string>',
'quantity' => 1.01,
'price' => 123,
'product_czuid' => '<string>',
'description_extended' => '<string>',
'vat_rate' => 19,
'vat_key' => 123,
'unit' => 'buc',
'ubl_um' => '<string>',
'ubl_nc' => '<string>',
'ubl_cpv' => '<string>',
'save_as_product' => false
]
],
'client_data' => [
'name' => '<string>',
'email' => 'jsmith@example.com',
'phone' => '<string>',
'cui' => '<string>',
'rc' => '<string>',
'address' => '<string>',
'city' => '<string>',
'county' => '<string>',
'country' => 'RO',
'postal_code' => '<string>',
'iban' => '<string>',
'bank' => '<string>',
'contact_person' => '<string>'
],
'series_id' => '<string>',
'reservation_token' => '<string>',
'force_chronology' => true,
'date' => '2023-12-25',
'due_date' => '2023-12-25',
'currency' => 'RON',
'currency_rate' => 123,
'document_type' => 'fiscal',
'is_draft' => 0,
'efactura_enabled' => 1,
'with_vat_inverted' => 0,
'payment_method' => '<string>',
'payment_type' => '<string>',
'payment_installments' => 123,
'send_email' => false,
'email_address' => 'jsmith@example.com',
'delegate' => [
'delegate_name' => '<string>',
'delegate_ci' => '<string>',
'delegate_transport' => '<string>',
'delegate_date' => '2023-12-25',
'delegate_time' => '<string>'
],
'info' => '<string>',
'observations' => '<string>',
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.contazen.ro/v1/invoices"

payload := strings.NewReader("{\n \"client_id\": \"<string>\",\n \"items\": [\n {\n \"description\": \"<string>\",\n \"quantity\": 1.01,\n \"price\": 123,\n \"product_czuid\": \"<string>\",\n \"description_extended\": \"<string>\",\n \"vat_rate\": 19,\n \"vat_key\": 123,\n \"unit\": \"buc\",\n \"ubl_um\": \"<string>\",\n \"ubl_nc\": \"<string>\",\n \"ubl_cpv\": \"<string>\",\n \"save_as_product\": false\n }\n ],\n \"client_data\": {\n \"name\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"<string>\",\n \"cui\": \"<string>\",\n \"rc\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"county\": \"<string>\",\n \"country\": \"RO\",\n \"postal_code\": \"<string>\",\n \"iban\": \"<string>\",\n \"bank\": \"<string>\",\n \"contact_person\": \"<string>\"\n },\n \"series_id\": \"<string>\",\n \"reservation_token\": \"<string>\",\n \"force_chronology\": true,\n \"date\": \"2023-12-25\",\n \"due_date\": \"2023-12-25\",\n \"currency\": \"RON\",\n \"currency_rate\": 123,\n \"document_type\": \"fiscal\",\n \"is_draft\": 0,\n \"efactura_enabled\": 1,\n \"with_vat_inverted\": 0,\n \"payment_method\": \"<string>\",\n \"payment_type\": \"<string>\",\n \"payment_installments\": 123,\n \"send_email\": false,\n \"email_address\": \"jsmith@example.com\",\n \"delegate\": {\n \"delegate_name\": \"<string>\",\n \"delegate_ci\": \"<string>\",\n \"delegate_transport\": \"<string>\",\n \"delegate_date\": \"2023-12-25\",\n \"delegate_time\": \"<string>\"\n },\n \"info\": \"<string>\",\n \"observations\": \"<string>\",\n \"notes\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.contazen.ro/v1/invoices")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"client_id\": \"<string>\",\n \"items\": [\n {\n \"description\": \"<string>\",\n \"quantity\": 1.01,\n \"price\": 123,\n \"product_czuid\": \"<string>\",\n \"description_extended\": \"<string>\",\n \"vat_rate\": 19,\n \"vat_key\": 123,\n \"unit\": \"buc\",\n \"ubl_um\": \"<string>\",\n \"ubl_nc\": \"<string>\",\n \"ubl_cpv\": \"<string>\",\n \"save_as_product\": false\n }\n ],\n \"client_data\": {\n \"name\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"<string>\",\n \"cui\": \"<string>\",\n \"rc\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"county\": \"<string>\",\n \"country\": \"RO\",\n \"postal_code\": \"<string>\",\n \"iban\": \"<string>\",\n \"bank\": \"<string>\",\n \"contact_person\": \"<string>\"\n },\n \"series_id\": \"<string>\",\n \"reservation_token\": \"<string>\",\n \"force_chronology\": true,\n \"date\": \"2023-12-25\",\n \"due_date\": \"2023-12-25\",\n \"currency\": \"RON\",\n \"currency_rate\": 123,\n \"document_type\": \"fiscal\",\n \"is_draft\": 0,\n \"efactura_enabled\": 1,\n \"with_vat_inverted\": 0,\n \"payment_method\": \"<string>\",\n \"payment_type\": \"<string>\",\n \"payment_installments\": 123,\n \"send_email\": false,\n \"email_address\": \"jsmith@example.com\",\n \"delegate\": {\n \"delegate_name\": \"<string>\",\n \"delegate_ci\": \"<string>\",\n \"delegate_transport\": \"<string>\",\n \"delegate_date\": \"2023-12-25\",\n \"delegate_time\": \"<string>\"\n },\n \"info\": \"<string>\",\n \"observations\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.contazen.ro/v1/invoices")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"client_id\": \"<string>\",\n \"items\": [\n {\n \"description\": \"<string>\",\n \"quantity\": 1.01,\n \"price\": 123,\n \"product_czuid\": \"<string>\",\n \"description_extended\": \"<string>\",\n \"vat_rate\": 19,\n \"vat_key\": 123,\n \"unit\": \"buc\",\n \"ubl_um\": \"<string>\",\n \"ubl_nc\": \"<string>\",\n \"ubl_cpv\": \"<string>\",\n \"save_as_product\": false\n }\n ],\n \"client_data\": {\n \"name\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"phone\": \"<string>\",\n \"cui\": \"<string>\",\n \"rc\": \"<string>\",\n \"address\": \"<string>\",\n \"city\": \"<string>\",\n \"county\": \"<string>\",\n \"country\": \"RO\",\n \"postal_code\": \"<string>\",\n \"iban\": \"<string>\",\n \"bank\": \"<string>\",\n \"contact_person\": \"<string>\"\n },\n \"series_id\": \"<string>\",\n \"reservation_token\": \"<string>\",\n \"force_chronology\": true,\n \"date\": \"2023-12-25\",\n \"due_date\": \"2023-12-25\",\n \"currency\": \"RON\",\n \"currency_rate\": 123,\n \"document_type\": \"fiscal\",\n \"is_draft\": 0,\n \"efactura_enabled\": 1,\n \"with_vat_inverted\": 0,\n \"payment_method\": \"<string>\",\n \"payment_type\": \"<string>\",\n \"payment_installments\": 123,\n \"send_email\": false,\n \"email_address\": \"jsmith@example.com\",\n \"delegate\": {\n \"delegate_name\": \"<string>\",\n \"delegate_ci\": \"<string>\",\n \"delegate_transport\": \"<string>\",\n \"delegate_date\": \"2023-12-25\",\n \"delegate_time\": \"<string>\"\n },\n \"info\": \"<string>\",\n \"observations\": \"<string>\",\n \"notes\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "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>",
      "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_description": "<string>",
        "reference": "<string>",
        "invoice": {
          "id": "<string>",
          "number": "<string>",
          "total": 123,
          "currency": "<string>"
        },
        "receipt": {
          "id": "<string>",
          "number": "<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>",
    "payment_method": "<string>",
    "notes": "<string>",
    "observations": "<string>",
    "efactura_enabled": true,
    "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"
  }
}
{
"success": false,
"error": {
"message": "<string>",
"code": "<string>",
"param": "<string>",
"doc_url": "<string>"
},
"meta": {
"version": "v1",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"response_time": "23.45ms"
}
}
{
"success": false,
"error": {
"message": "<string>",
"code": "<string>",
"param": "<string>",
"doc_url": "<string>"
},
"meta": {
"version": "v1",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"response_time": "23.45ms"
}
}

Authorizations

Authorization
string
header
required

Use your API key (sk_live_xxx or sk_test_xxx)

Body

application/json
client_id
string
required

Existing client CzUid (required if client_data not provided)

items
object[]
required
Minimum array length: 1
client_data
object

Inline client creation (required if client_id not provided)

series_id
string

Invoice series CzUid

reservation_token
string

Offline-mode only. Token returned by POST /invoice-series/{id}/reserve-numbers. When supplied, the server uses the reservation's pre-allocated number instead of calling nextNumber(), and flips the reservation to consumed. Must match the same series_id and belong to the caller's device. See Offline Mode.

force_chronology
boolean
default:true

Set to false to bypass the chronology check when syncing an offline draft dated before the last invoice on the series.

date
string<date>

Invoice date (defaults to today)

due_date
string<date>

Payment due date

currency
string
default:RON
currency_rate
number

Exchange rate to RON (required for foreign currency)

document_type
enum<string>
default:fiscal
Available options:
fiscal,
proforma,
receipt
is_draft
enum<integer>
default:0

1 to save as draft without invoice number

Available options:
0,
1
efactura_enabled
enum<integer>
default:1

Whether to submit to e-Factura (Romanian e-invoicing)

Available options:
0,
1
spv_environment
enum<string>

e-Factura environment (test for SPV testing)

Available options:
test,
live
with_vat_inverted
enum<integer>
default:0

1 for reverse charge (taxare inversă)

Available options:
0,
1
payment_method
string
payment_type
string
payment_installments
integer
send_email
boolean
default:false

Automatically send invoice by email after creation

email_address
string<email>

Override recipient email (uses client email if not specified)

with_delegate
enum<integer>

Include delegate information

Available options:
0,
1
delegate
object
info
string

Additional invoice information

observations
string

Internal notes

notes
string

Customer-visible notes

Response

Invoice created

success
boolean
data
object
meta
object