Skip to content

Quick start

In a few minutes you will create or upload a document and send it via Peppol or email. Choose: web interface or API.


Option A: Web interface

1. Sign in

Open the xTool web app (URL from your administrator) and sign in with your login and password.

2. Select organisation

In the switcher, select an organisation or create one (if you are an administrator). Documents and settings are tied to the active organisation. See Organisation and users.

3. Create or upload a document

Method Action
Form Documents → Create → choose format and direction (outbound/inbound) → fill the form.
XML Documents → Upload → select XML file (format can be specified or detected automatically).

See Create documents.

4. Send the document

Open the document and click:

  • "Send via Peppol" — the document must have a valid receiver Peppol ID. See Send via Peppol.
  • "Send by email" — enter recipient email and optionally language. See Send by email.

!!! tip "Testing Peppol" Use the Peppol test network for development and testing. See Peppol — networks.


Option B: API

1. Get an API key

In the web app: API (under your organisation) → create key → assign permissions (e.g. document upload and send) → copy the secret once. See API keys and permissions and Setup.

2. Authentication

Send the key in the header of every request:

x-api-key: YOUR_API_KEY

3. Upload a document

XML:

1
2
3
4
curl -X POST "https://xtool.invoice-portal.de/api/v2/documents/upload/xml" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/xml" \
  -d @invoice.xml

Model (JSON):

1
2
3
4
curl -X POST "https://xtool.invoice-portal.de/api/v2/documents/upload/model" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @invoice-model.json

The response includes the document id. See Create documents.

4. Send the document

Peppol:

1
2
3
4
curl -X POST "https://xtool.invoice-portal.de/api/v2/documents/DOCUMENT_ID/send" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"transaction_type": "send.peppol"}'

Email — in the body set "transaction_type": "send.email" and "email", and optionally "lang". See Send by email.


If something went wrong

Problem What to do
Document status failed Open the document (web or API) and check the status log for the error message. See Status lifecycle.
Validation errors Use the validation report: web → Tools → Validation or API → format validate endpoint. See Validate and convert.
Peppol: recipient not found Check the participant via Peppol Lookup (e.g. check-existence) before sending.