---
title: "Setting Up a Provider"
space: "eInvoicing"
url: "https://www.prilk.com/docs/edocument/integration/getting-started"
updated: "2026-05-14"
---

## Setting Up a Provider

Before you can transmit or receive PEPPOL documents over the network, configure the integration once per service provider account.

### Prerequisites
- A contract with B2B Router or Recommand
- API credentials from your provider
- The base eInvoicing app installed (this is the `edocument_integration` companion)

### Recommand — getting credentials

1. Log in to [peppol.recommand.eu](https://peppol.recommand.eu)
2. **Settings → API Keys** — generate or copy the **API Key** and **API Secret**
3. Note your **Team ID** (used as Account ID below) and **Company ID** on the same settings page

### B2B Router — getting credentials
- Log in to your B2B Router account
- Generate an API key from the account settings
- Note your Account ID

### EDocument Integration Settings

**EDocument Integration Settings → New** (one record per provider account):

| Field | What |
|---|---|
| **EDocument Profile** | "PEPPOL" (or your configured profile) |
| **Company** | The ERPNext Company this integration applies to |
| **EDocument Integrator** | "B2B Router" or "Recommand" |
| **API Key** | Your provider's API key |
| **API Secret** | Provider secret (Recommand only; encrypted at rest) |
| **Base URL** | Provider's API endpoint (defaults filled in for both) |
| **Account ID** | B2B Router account ID, or Recommand's Team ID |
| **Company ID** | Recommand only — your Recommand Company ID |

Save. The connection is now ready to use.

### Multi-company / multi-provider
You can create multiple Integration Settings records — one per Company / provider combination. When you click **Transmit via API** on an EDocument, the app picks the matching settings based on the source invoice's Company.

### Verifying the connection
- For Recommand: log into the Recommand dashboard and check **Status** — it should reflect a healthy connection
- For B2B Router: a manual test transmission of a draft invoice is the simplest verification

### Security
- The API Secret field is encrypted at rest. Read it back via `frappe.get_doc(...).get_password("api_secret")`, never via plain attribute access.
- Don't share Integration Settings with users who don't need it. Restrict the DocType to a Finance Manager or System Manager role.
- The webhook endpoint is **public** (`allow_guest=True`) — see [Configuring a Service Provider](/docs/edocument/integration/service-provider) for security considerations.

### Next
- [Configuring a Service Provider](/docs/edocument/integration/service-provider) — webhook URL, polling schedule
- [Sending & Receiving](/docs/edocument/integration/send-receive) — daily flow
