Your first e-invoice via the eConnect API in ten minutes. Request an API key, obtain an OAuth2 token and send your first document. Works from any language that supports HTTP and JSON.

Open the Getting started guide

Try directly in Swagger

3 steps
Three steps to your first submission

Always start in the acceptance environment. Your test and production credentials are strictly separated, so a test connection can never accidentally send a real invoice. Only when your flow is stable do you switch to production using the same integration patterns.

Request an API key

Request a sandbox account and generate an API key in the platform. Store the key encrypted; you use it only to obtain tokens.

Obtain an OAuth2 token

Exchange the API key at the identity endpoint for a Bearer token. Tokens have a limited validity; refresh them in your client or middleware.

Send your first invoice

POST a UBL invoice to the correct endpoint and immediately receive a document ID. The webhook confirms delivery on the Peppol network.

curl for proof-of-concept

One line to get your token, one POST to send your first invoice. Works from any shell.

PHP SDK (econnect-psb-php)

Official bindings with support for authentication, document types, webhooks and error handling.

.NET SDK (econnect-psb-dotnet)

Official .NET binding with the same API coverage as the PHP route.

OpenAPI codegen

Download the Swagger spec and generate a client in Python, Go, Java, TypeScript or any other language of your choice.

code
Examples in your language

Start with curl for a quick proof-of-concept and then move to an SDK for production. PHP and .NET have official bindings; for other languages you generate a client from the OpenAPI spec.

View SDKs and CLI

webhooks
What you want to set up next

A working submission is the beginning. For a production-stable integration, connect webhooks for real-time status updates, build error handling with retries on 5xx responses, and validate documents in advance via the Validate API so only valid files leave your own pipeline.

Set up webhooks

questions
Frequently asked questions
Do I need a paid account to try the API?

No, for a proof-of-concept the live Swagger UI at psb.econnect.eu works without an account. You can view requests and test the structure. For real test calls, request a sandbox account.

Which document types can I send?

All common e-invoicing formats: UBL Peppol BIS Billing 3.0, NLCIUS, XRechnung, FatturaPA and more. For the full overview see document formats.

Can I send my first invoice to myself?

Yes, that is the recommended approach. In the sandbox you send a test invoice to your own Peppol identifier or a test receiver. The PSB confirms receipt via webhook or polling.

What do I do if the API returns an error?

4xx errors indicate validation or authorization and should not be retried blindly. For 5xx errors, retry with exponential backoff. Webhooks also asynchronously inform you of what went wrong during processing. See error handling.

Can I directly validate an invoice without sending?

Yes, via the Validate API. Submit a document and you get an isValid boolean plus all assertions per validation layer. Useful for finding mapping errors before production traffic is affected. See Validate API.

Ask your question

ready?
Ready to get started?

Request a sandbox account and make your first API call within ten minutes.

Request sandbox access

Open the Getting started guide