Use Cases

All ceric use cases with scenarios description.

Overview

ceric supports three main use cases for processing ELSTER XML documents:

  1. draft - Validate and preview XML documents without transmission

  2. send - Validate and transmit documents with PDF generation

  3. transmit - Transmit documents without PDF generation

For downloading data from the OTTER server, use the separate cotto binary.

Draft Use Case

Purpose

The draft use case validates XML documents and generates PDF previews without transmitting data to ELSTER servers. This is ideal for:

  • Development and testing - Validate XML structure before production

  • Client preview - Show customers what the final document will look like

  • Quality assurance - Ensure XML meet ELSTER requirements

  • Offline validation - Check documents without network connectivity

Command Syntax

Examples

Basic Draft Operation

Draft with Custom Paths

PHP SDK Example

Output

  • PDF file - Generated preview document

  • XML with header - Enhanced XML with ERiC header

  • Validation results - Structured error and hint information

Send Use Case

Purpose

The send use case validates XML documents, transmits data to ELSTER servers, and generates PDFs. This is used for:

  • Production submissions - Send official tax documents

  • Client confirmations - Provide PDF receipts to clients

  • Audit trails - Maintain records of transmitted documents

  • Compliance - Meet regulatory requirements

Prerequisites

  • Valid ELSTER certificate - Required for authentication

  • Network connectivity - Must connect to ELSTER servers

  • Proper data type - Must support print operations

Command Syntax

Examples

Basic Send Operation

Send with Environment Variables

Note: For complete environment variable configuration, see Environment Variables.

PHP SDK Example

Output

  • PDF file - Generated confirmation document

  • XML with header - Enhanced XML with ERiC header

  • Process result - ERiC processing information

  • Server response - ELSTER server confirmation

Transmit Use Case

Purpose

The transmit use case validates XML documents and transmits data to ELSTER servers without generating PDFs. This is ideal for:

  • Postfach operations - Data retrieval requests and confirmations

  • High-volume processing - When PDF generation is not needed

  • Automated workflows - System-to-system communication

  • Performance optimization - Faster processing without PDF generation

Command Syntax

Examples

Basic Transmit Operation

Transmit Commercial Registration

PHP SDK Example

Output

  • XML with header - Enhanced XML with ERiC header

  • Process result - ERiC processing information

  • Server response - ELSTER server confirmation

  • No PDF file - PDF generation is skipped

Download usecase (cotto binary)

Purpose

The download functionality is provided by the separate cotto binary, which retrieves data from the OTTER server using an object UUID. This is used for:

  • Protocol retrieval - Download processing protocols

  • Status checking - Verify document processing status

  • Audit purposes - Access historical data

Command Syntax

Examples

Basic Download Operation

Download with Custom File Extension

PHP SDK Example

Output

  • Downloaded file - Retrieved data file

  • Server response - Download confirmation

  • Process result - Download operation details

Data Type Compatibility

Data Type
Draft
Send
Transmit

Kontoinformation

✅*

ElsterFSE_EUn_{version}

Gewerbemeldung

✅*

PostfachAnfrage_{version}

PostfachBestaetigung_{version}

  • Generated PDF does not contain so called user data, so the main part of the PDF is blank, just header, footer (and transfer ticket with submission date/time) in printed on the PDF

Scenarios

Registration for tax purposes (EUn)

Commercial Registration Workflow (GAN)

Error Handling

Common Error Scenarios

  1. Invalid data type for usecase

    • Error: Data type print not supported

    • Solution: Use appropriate usecase (or data type)

  2. Missing certificate for send operations

    • Error: Could not load certificate

    • Solution: Set PATH_CERTIFICATE and CERTIFICATE_PIN

  3. Invalid UUID for download

    • Error: Invalid UUID format

    • Solution: Use valid UUID v4 format

  4. Network issues for send/transmit

    • Error: Server response contains errors

    • Solution: Check network connectivity and firewall

Best Practices

  1. Always validate first - Use draft mode before production operations

  2. Handle errors gracefully - Check exit codes and provide meaningful messages

  3. Use appropriate use cases - Choose the right use case for your needs

  4. Monitor logs - Check eric.log and otto.log for detailed information

  5. Test with examples - Use provided XML examples for testing

Last updated