Quickstart Guide
Send your first Peppol invoice in under 5 minutes. This guide walks you through the essential steps to get started with GoRoute.
Prerequisitesโ
- A GoRoute account (sign up here)
- Your business registered in the Peppol network (we handle this)
- A test receiver to send invoices to
Step 1: Get Your API Keyโ
- Log in to the GoRoute Dashboard
- Navigate to Settings โ API Keys
- Click Create API Key
- Copy and save your key securely (it won't be shown again)
pk_live_abc123def456...
Your API key provides full access to your organization. Never commit it to source control or expose it in client-side code.
Step 2: Test Your Connectionโ
Two different checks, and it is worth knowing which is which.
Sandbox keys: if your API key starts with
sk_test_, your account is on the test environment โ usehttps://peppol-api-test.goroute.ai/peppol-apias the base URL andhttps://app-test.goroute.ai/app/for the dashboard. The production URLs below are forpk_live_keys.
Is the API up, and which environment am I on? GET /health โ no API key, and it sits
outside /api/v1:
curl -X GET https://app.goroute.ai/peppol-api/health
{
"status": "healthy",
"version": "1.0.0",
"environment": "production",
"timestamp": "2026-08-06T06:09:57.050723"
}
Does my API key work? Call an authenticated endpoint. Step 3 below does exactly that โ
if the participant lookup answers 401, the key is the problem rather than the participant.
They take no key at all and answer 200 whether yours is valid, expired or missing. Use them
for availability and environment, never for authentication.
Step 3: Check Receiver Existsโ
Before sending, verify the receiver is on the Peppol network:
curl -X GET "https://app.goroute.ai/peppol-api/api/v1/participants/lookup?peppol_id=0204:DE123456789" \
-H "X-API-Key: YOUR_API_KEY"
Expected response:
{
"found": true,
"participant_id": "0204:DE123456789",
"name": "Customer GmbH",
"country": "DE",
"capabilities": [
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice"
]
}
Step 4: Send Your First Invoiceโ
Now send an invoice using the JSON format:
curl -X POST https://app.goroute.ai/peppol-api/api/v1/invoices \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"invoice_number": "INV-2026-001",
"issue_date": "2026-01-26",
"due_date": "2026-02-26",
"currency": "EUR",
"sender": {
"name": "Your Company",
"street": "123 Main Street",
"city": "Amsterdam",
"postal_code": "1012 AB",
"country": "NL",
"vat_number": "NL123456789B01",
"peppol_id": "0106:12345678"
},
"receiver": {
"name": "Customer GmbH",
"street": "456 Business Ave",
"city": "Berlin",
"postal_code": "10115",
"country": "DE",
"vat_number": "DE123456789",
"peppol_id": "0204:DE123456789"
},
"lines": [
{
"description": "Consulting Services - January 2026",
"quantity": 40,
"unit": "HUR",
"unit_price": 125.00,
"vat_rate": 19,
"vat_category": "S"
}
]
}'
Expected response:
{
"transaction_id": "txn_abc123def456",
"status": "accepted",
"invoice_number": "INV-2026-001",
"created_at": "2026-01-26T10:30:00Z",
"message": "Invoice accepted for delivery"
}
Step 5: Track Delivery Statusโ
Check the delivery status:
curl -X GET https://app.goroute.ai/peppol-api/api/v1/transactions/txn_abc123def456 \
-H "X-API-Key: YOUR_API_KEY"
Expected response:
{
"transaction_id": "txn_abc123def456",
"status": "delivered",
"invoice_number": "INV-2026-001",
"delivered_at": "2026-01-26T10:30:15Z",
"events": [
{"status": "accepted", "timestamp": "2026-01-26T10:30:00Z"},
{"status": "validated", "timestamp": "2026-01-26T10:30:02Z"},
{"status": "sent", "timestamp": "2026-01-26T10:30:10Z"},
{"status": "delivered", "timestamp": "2026-01-26T10:30:15Z"}
]
}
๐ Congratulations!โ
You've successfully sent your first Peppol invoice through GoRoute!
Next Stepsโ
Build Your Integrationโ
Using Python?โ
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://app.goroute.ai/peppol-api"
response = requests.post(
f"{BASE_URL}/api/v1/invoices",
headers={"X-API-Key": API_KEY},
json={
"invoice_number": "INV-2026-001",
"issue_date": "2026-01-26",
"sender": {"name": "Your Company", "peppol_id": "0106:12345678"},
"receiver": {"name": "Customer", "peppol_id": "0204:DE123456789"},
"lines": [
{"description": "Service", "quantity": 1, "unit_price": 100.00, "vat_rate": 19}
]
}
)
print(response.json())
Need Help?โ
- ๐ง Email: admin@goroute.ai
- ๐ Full API Reference: API Docs
- ๐ฌ Dashboard: app.goroute.ai