Getting started

Integrate the eConnect PSB API step by step: request a sandbox, authenticate, first API call, send an invoice and test webhooks.

This guide takes you from sandbox request to a working end-to-end flow: token, first API call, invoice send and webhooks. Always start in acceptance (accp- endpoints); production credentials are strictly separate. Why the sandbox exists commercially: All-in-one API.

Before you code: format and validation
  1. Document formats — which formats eConnect supports; start with Peppol BIS Billing 3.0 for international traffic (NLCIUS for Netherlands-only).
  2. Sample invoices — complete XML examples (BIS first, then NLCIUS) as structure templates.
  3. Validate your first file — free validator before you send anything.
Step 1: request a sandbox account

Request OAuth2 credentials (clientId / clientSecret) via the sandbox wizard. After the request, eConnect creates credentials and a test party on the Peppol test network.

FieldMeaningclientIdIdentifies your application at the Identity ServerclientSecretSecret for token requestsTest partyRegistered Peppol party on the test network

Default flow for server-to-server: Client Credentials.

Step 2: configure acceptance endpoints
ComponentAcceptance (sandbox)ProductionPSB APIaccp-psb.econnect.eupsb.econnect.euIdentity Serveraccp-identity.econnect.euidentity.econnect.euVPD serviceaccp-vpd.econnect.eu/graphql/v1vpd.econnect.eu/graphql/v1Mailhook email@accp.econnect.email@econnect.email

Documents from a test account stay on the Peppol test network.

Step 3: obtain an OAuth2 token
POST /connect/token HTTP/1.1
Host: accp-identity.econnect.eu
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id=your-client-id
&client_secret=your-client-secret
&scope=ap

Full path: Authentication.

Step 4: first API call
GET /api/v1/me HTTP/1.1
Host: accp-psb.econnect.eu
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

Explore endpoints in the interactive API Reference.

Step 5: send your first invoice
POST /api/v1/{partyId}/salesInvoice/send

Body = XML document (Content-Type: application/xml). Recommended first test:

  1. Check the receiver via queryRecipientParty (Send invoice)
  2. Send a Peppol BIS Billing 3.0 (or NLCIUS) invoice to your own test party
  3. Use X-EConnect-DocumentId with a UUID for idempotency

Note: EndpointID in your XML selects the receiver.

Step 6: webhooks
  1. Register a hook with topic InvoiceSent (or InvoiceReceived)
  2. Return 2xx within 100 seconds
  3. Verify HMAC SHA256 signatures

See Configure webhooks.

Next steps