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โ
Verify your API key works. Each API key belongs to exactly one organization, so this call returns that organization's profile โ no organization ID has to be passed:
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.
curl -X GET https://app.goroute.ai/peppol-api/api/v1/settings/organization \
-H "X-API-Key: YOUR_API_KEY"
Expected response โ the organization your key is bound to:
{
"id": "9f1c2b7e-2f4a-4a1b-9c3d-7e5a1b2c3d4e",
"name": "Your Company",
"peppol_id": "0106:12345678",
"contact_email": "billing@yourcompany.example",
"vat_number": "NL123456789B01",
"country": "NL",
"status": "active"
}
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. The invoice data goes in an invoice object;
GoRoute validates it, renders the UBL XML and queues it for delivery:
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": {
"document_type": "invoice",
"number": "INV-2026-001",
"issue_date": "2026-01-26",
"due_date": "2026-02-26",
"currency": "EUR",
"seller": {
"name": "Your Company",
"peppol_id": "0106:12345678",
"vat_number": "NL123456789B01",
"address": {
"street": "123 Main Street",
"city": "Amsterdam",
"postal_code": "1012 AB",
"country": "NL"
}
},
"buyer": {
"name": "Customer GmbH",
"peppol_id": "0204:DE123456789",
"vat_number": "DE123456789",
"address": {
"street": "456 Business Ave",
"city": "Berlin",
"postal_code": "10115",
"country": "DE"
}
},
"lines": [
{
"description": "Consulting Services - January 2026",
"quantity": 40,
"unit": "HUR",
"unit_price": 125.00,
"tax_rate": 19,
"tax_category": "standard"
}
],
"totals": {
"net_amount": 5000.00,
"tax_amount": 950.00,
"payable_amount": 5950.00
}
}
}'
Expected response (202 Accepted):
{
"transaction_id": "1d5c8f92-3b47-4c2e-9a61-0f7d2e8b4c15",
"status": "queued",
"message": "Invoice validated, transformed to Peppol BIS 3.0, and queued for delivery",
"created_at": "2026-01-26T10:30:00Z"
}
Step 5: Track Delivery Statusโ
Check the delivery status:
curl -X GET https://app.goroute.ai/peppol-api/api/v1/transactions/1d5c8f92-3b47-4c2e-9a61-0f7d2e8b4c15 \
-H "X-API-Key: YOUR_API_KEY"
Expected response:
{
"id": "1d5c8f92-3b47-4c2e-9a61-0f7d2e8b4c15",
"direction": "sent",
"status": "delivered",
"sender_peppol_id": "0106:12345678",
"receiver_peppol_id": "0204:DE123456789",
"document_type": "invoice",
"created_at": "2026-01-26T10:30:00Z",
"submitted_at": "2026-01-26T10:30:10Z",
"delivered_at": "2026-01-26T10:30:15Z",
"retry_count": 0
}
๐ 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": {
"document_type": "invoice",
"number": "INV-2026-001",
"issue_date": "2026-01-26",
"currency": "EUR",
"seller": {"name": "Your Company", "peppol_id": "0106:12345678"},
"buyer": {"name": "Customer", "peppol_id": "0204:DE123456789"},
"lines": [
{"description": "Service", "quantity": 1, "unit_price": 100.00, "tax_rate": 19}
],
"totals": {"net_amount": 100.00, "tax_amount": 19.00, "payable_amount": 119.00}
}
}
)
print(response.json())
Need Help?โ
- ๐ง Email: admin@goroute.ai
- ๐ Full API Reference: API Docs
- ๐ฌ Dashboard: app.goroute.ai