Freiberufler / Einzelunternehmen
Create a tax registration for a freelancer or sole proprietor. Generates the ELSTER FsE_EUn form.
POST https://api.beglaubigt.de/v1/tax-registration
The request for a Freiberufler or Einzelunternehmen (freelancer or sole proprietor). legal_form
is einzelunternehmen, which maps to the ELSTER FsE_EUn form. There is no company entity: the
taxpayer is the owner, and the client company is named after them.
Authorization
Include an Authorization header with a Bearer token:
Authorization: Bearer <token>
Example: Bearer sk-123e4567-e89b-12d3-a456-426614174000
Request
Core
company_idstringAssign the tax registration to a specific existing company. The company must not already have a tax
registration; if it does, the request returns 409 COMPANY_ALREADY_REGISTERED. The environment must
match the company: a sandbox registration cannot be assigned to a production company (or the reverse),
which returns 409 ENVIRONMENT_MISMATCH. An unknown company_id returns 404 COMPANY_NOT_FOUND. Omit it to have a new company created and linked automatically.
Example: 9b2e4c7a-1d3f-4a8b-9c6e-2f5a7b8c1d0e
business_addressobjectBusiness address for the client company, stored on the company that gets created. Only applies when a
new company is created (omit company_id); it is rejected if sent together with company_id.
streetstringrequiredStreet and house number.
Example: Torstraße 1
zipstringrequiredPostal code.
Example: 10119
citystringrequiredCity.
Example: Berlin
countrystringrequiredCountry as an ISO 3166-1 alpha-2 code.
Example: de
street_second_linestringA second address line (c/o, suite, …).
Example: c/o Muster
statestringState or region.
Example: Berlin
legal_formstringrequiredThe legal form.
Possible values: einzelunternehmen
packagestringrequiredThe service package the client selected.
Possible values: self or guided
signature_pathstringrequiredThe client's signature as an SVG path string (the drawn signature).
Example: M 10 10 L 90 90 M 90 10 L 10 90
environmentstringdefault: productionThe ELSTER environment to file against. It also sets the created company's type: sandbox creates a
staging company and files against test ELSTER; production creates a live company.
Possible values: sandbox or production
client_referencestringA custom reference string for your own tracking.
Example: REF-2025-001
Business
purposestringrequiredDescription of the business activity. Max 200 characters.
Example: Freiberufliche IT-Beratung
operational_activity_start_datestringrequiredThe date the business begins operating. Format: YYYY-MM-DD.
Example: 2025-04-01
Owner & Address
ownerobjectrequiredThe natural person behind the sole proprietorship (Inhaber).
first_namestringrequiredFirst name. Max 72 characters.
Example: Max
last_namestringrequiredLast name. Max 72 characters.
Example: Mustermann
emailstringContact email, kept for follow-up, not part of the ELSTER filing.
Example: max.mustermann@example.com
phonestringContact phone, kept for follow-up, not part of the ELSTER filing.
Example: +491701234567
dobstringrequiredDate of birth. Format: YYYY-MM-DD.
Example: 1985-07-10
professionstringrequiredExercised profession (Berufsbezeichnung). Max 51 characters.
Example: IT-Berater
tax_identification_numberstringrequiredGerman tax ID (Steuer-Identifikationsnummer): 11 digits, validated with the ISO 7064 (Mod 11,10) checksum.
Example: 09481663279
religionstringdefault: 112-digit church-tax key (Religionsschlüssel); 11 means not liable for church tax.
Example: 11
tax_numberstringExisting personal tax number (Steuernummer), 13-digit unified format.
Example: 1121081508150
addressobjectrequiredOwner's residence (see the Address object). A residence abroad is expressed by the address country (anything other than de).
address_same_as_homebooleanrequiredWhether the business address equals the owner's home address.
Possible values: true or false
addressobjectrequiredBusiness address, required when address_same_as_home is false (see the Address object).
Bank Account
ibanstringThe owner's business bank account IBAN. For a non-German IBAN you must also supply bic.
Example: DE89370400440532013000
bicstringThe bank identifier (BIC/SWIFT) for the account, 8 to 11 characters. Required for non-German IBANs.
Example: COBADEFFXXX
Revenue & Profit Estimates
financial_estimatesobjectrequiredEstimated revenue and taxable profit for the formation year and the following year. All amounts are whole euros.
formation_yearobjectrequiredEstimates for the formation year (the year the business starts operating).
revenue_amountnumberrequiredEstimated revenue. Cannot be lower than profit_amount.
Example: 20000
profit_amountnumberrequiredEstimated taxable profit.
Example: 18000
following_yearobjectrequiredEstimates for the year after the formation year.
revenue_amountnumberrequiredEstimated revenue. Cannot be lower than profit_amount.
Example: 35000
profit_amountnumberrequiredEstimated taxable profit.
Example: 30000
VAT
Freelancers (Freiberufler) are always taxed on a cash basis (Ist-Versteuerung, § 20 UStG), so
vat.accounting_method does not apply to this form.
vatobjectrequiredThe company's VAT setup.
regimestringThe VAT regime the company elects. small-business elects the small-business exemption (Kleinunternehmer,
§ 19 UStG); standard is the regular VAT regime (Regelbesteuerung). Required when the election is available
(founding-year revenue ≤ €25,000 and following-year ≤ €100,000). Above €25,000 the company is on the regular
VAT regime regardless, so the field has no effect there.
Possible values: small-business or standard
estimated_balance_typestringWhether you expect to owe VAT to the tax office (payable, Zahllast) or receive a refund (refundable, Überschuss).
Possible values: payable or refundable
estimated_balance_amountnumberEstimated net VAT amount for the year, either payable or refunded.
Example: 4000
return_frequencystringHow often VAT returns are filed. Required for an input-VAT surplus (Vorsteuerüberschuss,
estimated_balance_type = refundable) greater than €9,000, where only monthly is valid; quarterly is the tax office's default.
Possible values: monthly or quarterly
request_vat_idbooleanWhether to request an EU VAT identification number (USt-IdNr), used for cross-border B2B trade.
Possible values: true or false
sells_via_online_marketplacesbooleanWhether you sell through online marketplaces such as Amazon or Etsy (§ 25e UStG record-keeping).
Possible values: true or false
request_reverse_charge_certificatebooleanWhether to apply for the reverse-charge certificate for construction and building-cleaning services
(USt 1 TG, § 13b UStG). When true, reverse_charge_service_type is required.
Possible values: true or false
reverse_charge_service_typestringThe type of service the reverse-charge certificate covers. Required when request_reverse_charge_certificate is true.
Possible values: construction, building-cleaning or both
Employees & Payroll
has_employeesbooleanWhether there are employees. Enables the payroll block. When true, the fields below are all required.
Possible values: true or false
employee_countnumberNumber of employees. Required when has_employees = true.
Example: 3
payroll_start_datestringStart of wage payments. Must not be before operational_activity_start_date. Required when
has_employees = true. Format: YYYY-MM-DD.
Example: 2025-06-01
estimated_annual_wage_taxnumberEstimated annual wage tax (Lohnsteuer). Required when has_employees = true.
Example: 6000
Shared Objects
AddressobjectstreetstringrequiredStreet including the house number, which must be present, e.g. Hauptstraße 12 or Hauptstraße 12a. Max 72 characters.
Example: Torstraße 1
street_second_linestringAdditional address line (floor, c/o, …), kept as supplementary information.
Example: 2. Etage
zipstringrequiredPostal code. A German address must be a 5-digit code.
Example: 60311
citystringrequiredCity. Max 72 characters, no digits.
Example: Frankfurt am Main
statestringFederal state (Bundesland).
Example: Hessen
countrystringrequiredISO 3166-1 alpha-2 country code. de is domestic; any other value marks the address as abroad.
Example: de
Response
resultstringOutcome of the request.
Possible values: success or error
messagestringHuman-readable outcome message.
Example: Tax registration XML generated and stored. Awaiting manual ELSTER submission.
tax_registration_idstringUUID of the tax registration case (equal to the id you supplied, if any). Use it with the GET endpoint.
Example: 450506c1-d1a7-46e2-aca6-41a816805595
statusstringThe case status once the XML passed schema and XSD checks.
Possible values: validated
timestampstringISO 8601 timestamp of the response.
Example: 2025-02-01T07:19:30.443Z
Example
{
"legal_form": "einzelunternehmen",
"package": "self",
"signature_path": "M 10 10 L 90 90 M 90 10 L 10 90",
"purpose": "Freiberufliche IT-Beratung",
"operational_activity_start_date": "2025-04-01",
"owner": {
"first_name": "Max",
"last_name": "Mustermann",
"dob": "1985-07-10",
"profession": "IT-Berater",
"tax_identification_number": "09481663279",
"religion": "11",
"address": {
"street": "Schweizer Strasse 8",
"street_second_line": "2. Etage",
"zip": "60594",
"city": "Frankfurt am Main",
"country": "de"
}
},
"address_same_as_home": true,
"financial_estimates": {
"formation_year": { "revenue_amount": 20000, "profit_amount": 18000 },
"following_year": { "revenue_amount": 35000, "profit_amount": 30000 }
},
"environment": "sandbox"
}{
"response": {
"result": "success",
"message": "Tax registration XML generated and stored. Awaiting manual ELSTER submission.",
"tax_registration_id": "450506c1-d1a7-46e2-aca6-41a816805595",
"status": "validated",
"timestamp": "2025-02-01T07:19:30.443Z"
}
}