# Get the e-invoicing settings

> The einvoice.settings.get operation: GET /api/v1/einvoice/settings in the REST API and the einvoice_settings_get tool in the MCP server.

Returns the legal entity's e-invoicing settings in the mode of the request: its routes (which provider sends the
e-invoices of documents to buyers in a country, for a transaction type `b2b`, `b2g` or `b2c`), its electronic
address (its Peppol participant ID; else the one derived from its VAT ID), the providers that can be used here,
and what the knowledge base's e-invoicing mandates of its home country suggest configuring.

`homeMandate` is the home country's domestic B2B mandate in force, if there is one; its `configured` must be true
in live mode before a brand of the entity can go live (the go-live checklist item `einvoice_home`). Test and live
mode have their own settings. Mandates are shown whatever their review status in the knowledge base (`status`).

## At a glance

- **REST:** `GET /api/v1/einvoice/settings`
- **MCP tool:** `einvoice_settings_get`
- **Operation ID:** `einvoice.settings.get`
- **Scope:** Legal entity
- **Permission:** `entities:read`
- **Risk tier:** `read`
- **Dry run:** Not supported
- **Idempotency:** Not needed (read only)
- **Modes:** Test and live
- **Plan feature:** `einvoicing.enabled`
- **Authentication:** API key with the `entities:read` scope
- **Since:** M13

## Request

### Query parameters

This operation takes no query parameters.

## Response

`200 OK` with a JSON object:

| Field                           | Type                                                      | Description                                                                                                                 |
| ------------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `object`                        | `"einvoice_settings"`                                     |                                                                                                                             |
| `entityId`                      | `ent_…` ID                                                |                                                                                                                             |
| `livemode`                      | boolean                                                   |                                                                                                                             |
| `version`                       | integer (at least 0)                                      | 0 while nothing is configured; pass it as `expectedVersion`.                                                                |
| `routes`                        | array of object                                           |                                                                                                                             |
| `routes[].country`              | string                                                    | ISO 3166-1 alpha-2 country of the buyers this route serves.                                                                 |
| `routes[].transactionType`      | one of `b2b`, `b2g`, `b2c`                                |                                                                                                                             |
| `routes[].provider`             | string                                                    |                                                                                                                             |
| `routes[].format`               | one of `UBL_2_1_PEPPOL_BIS_3`, `CII`, `national`          |                                                                                                                             |
| `routes[].providerAvailable`    | boolean                                                   | Whether the provider can be used here (the fake provider only in development and test).                                     |
| `endpoint`                      | string or null                                            | The entity's electronic address (\<scheme>:\<identifier>) as configured.                                                    |
| `derivedEndpoint`               | string or null                                            | The address derived from the entity's VAT ID, used when `endpoint` is null.                                                 |
| `homeMandate`                   | object or null                                            | The home country's domestic B2B e-invoicing mandate in force, and whether a usable route covers it (a go-live requirement). |
| `suggestions`                   | array of object                                           |                                                                                                                             |
| `suggestions[].country`         | string                                                    |                                                                                                                             |
| `suggestions[].transactionType` | one of `b2b`, `b2g`, `b2c`                                |                                                                                                                             |
| `suggestions[].mandate`         | string                                                    |                                                                                                                             |
| `suggestions[].scope`           | string                                                    |                                                                                                                             |
| `suggestions[].startDate`       | string                                                    |                                                                                                                             |
| `suggestions[].inForce`         | boolean                                                   |                                                                                                                             |
| `suggestions[].configured`      | boolean                                                   |                                                                                                                             |
| `suggestions[].knowledgeId`     | string                                                    |                                                                                                                             |
| `suggestions[].status`          | string                                                    | The mandate record's review status in the knowledge base.                                                                   |
| `providers`                     | array of object                                           |                                                                                                                             |
| `providers[].id`                | string                                                    |                                                                                                                             |
| `providers[].name`              | string                                                    |                                                                                                                             |
| `providers[].description`       | string                                                    |                                                                                                                             |
| `providers[].formats`           | array of one of `UBL_2_1_PEPPOL_BIS_3`, `CII`, `national` |                                                                                                                             |
| `providers[].countries`         | `"*"` or array of string                                  |                                                                                                                             |
| `providers[].devOnly`           | boolean                                                   |                                                                                                                             |
| `providers[].available`         | boolean                                                   |                                                                                                                             |
| `updatedAt`                     | date-time or null                                         |                                                                                                                             |

## Examples

### A Croatian entity before configuration

The home country requires e-invoices for domestic B2B sales; nothing is configured yet.

```http
GET /api/v1/einvoice/settings
Authorization: Bearer or_test_…
```

Response (`200`):

```json
{
  "object": "einvoice_settings",
  "entityId": "ent_01jacq4m3xf0v8w9zq2y7k5n6h",
  "livemode": false,
  "version": 0,
  "routes": [],
  "endpoint": null,
  "derivedEndpoint": "9934:HR12345678903",
  "homeMandate": {
    "country": "HR",
    "name": "Fiscalization 2.0, domestic B2B e-invoicing",
    "startDate": "2026-01-01",
    "configured": false
  },
  "suggestions": [
    {
      "country": "HR",
      "transactionType": "b2g",
      "mandate": "B2G e-invoicing",
      "scope": "b2g",
      "startDate": "2019-07-01",
      "inForce": true,
      "configured": false,
      "knowledgeId": "kn_01jacq4m3xf0v8w9zq2y7k5n80",
      "status": "researched"
    },
    {
      "country": "HR",
      "transactionType": "b2b",
      "mandate": "Fiscalization 2.0, domestic B2B e-invoicing",
      "scope": "b2b_domestic",
      "startDate": "2026-01-01",
      "inForce": true,
      "configured": false,
      "knowledgeId": "kn_01jacq4m3xf0v8w9zq2y7k5n81",
      "status": "researched"
    }
  ],
  "providers": [
    {
      "id": "fake",
      "name": "Fake provider",
      "description": "Development and test only: records each e-invoice and reports it queued, delivered after a minute and accepted after five.",
      "formats": ["UBL_2_1_PEPPOL_BIS_3"],
      "countries": "*",
      "devOnly": true,
      "available": true
    }
  ],
  "updatedAt": null
}
```

### Domestic B2B e-invoices routed to a provider

```http
GET /api/v1/einvoice/settings
Authorization: Bearer or_test_…
```

Response (`200`):

```json
{
  "object": "einvoice_settings",
  "entityId": "ent_01jacq4m3xf0v8w9zq2y7k5n6h",
  "livemode": false,
  "version": 1,
  "routes": [
    {
      "country": "HR",
      "transactionType": "b2b",
      "provider": "fake",
      "format": "UBL_2_1_PEPPOL_BIS_3",
      "providerAvailable": true
    }
  ],
  "endpoint": null,
  "derivedEndpoint": "9934:HR12345678903",
  "homeMandate": {
    "country": "HR",
    "name": "Fiscalization 2.0, domestic B2B e-invoicing",
    "startDate": "2026-01-01",
    "configured": true
  },
  "suggestions": [
    {
      "country": "HR",
      "transactionType": "b2g",
      "mandate": "B2G e-invoicing",
      "scope": "b2g",
      "startDate": "2019-07-01",
      "inForce": true,
      "configured": false,
      "knowledgeId": "kn_01jacq4m3xf0v8w9zq2y7k5n80",
      "status": "researched"
    },
    {
      "country": "HR",
      "transactionType": "b2b",
      "mandate": "Fiscalization 2.0, domestic B2B e-invoicing",
      "scope": "b2b_domestic",
      "startDate": "2026-01-01",
      "inForce": true,
      "configured": true,
      "knowledgeId": "kn_01jacq4m3xf0v8w9zq2y7k5n81",
      "status": "researched"
    }
  ],
  "providers": [
    {
      "id": "fake",
      "name": "Fake provider",
      "description": "Development and test only: records each e-invoice and reports it queued, delivered after a minute and accepted after five.",
      "formats": ["UBL_2_1_PEPPOL_BIS_3"],
      "countries": "*",
      "devOnly": true,
      "available": true
    }
  ],
  "updatedAt": "2026-10-20T09:00:00.000Z"
}
```

## Errors

| Code                                                                                     | HTTP status | When                                           | What to do                                                                                                                                         |
| ---------------------------------------------------------------------------------------- | ----------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`scope_required`](https://ownrecord.io/docs/reference/errors.md#scope_required)         | 400         | The request names no legal entity.             | Call the operation with credentials or a target at its level: an organization, a legal entity, a brand or the platform (`details.required_scope`). |
| [`resource_not_found`](https://ownrecord.io/docs/reference/errors.md#resource_not_found) | 404         | The entity doesn't exist in this organization. | Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.                                               |
| [`permission_denied`](https://ownrecord.io/docs/reference/errors.md#permission_denied)   | 403         | You can't see this entity.                     | Ask an organization owner or admin for a role or scope that allows this action.                                                                    |

It can also return these [common errors](https://ownrecord.io/docs/reference.md#common-errors): [`validation_failed`](https://ownrecord.io/docs/reference/errors.md#validation_failed), [`api_version_unsupported`](https://ownrecord.io/docs/reference/errors.md#api_version_unsupported), [`authentication_required`](https://ownrecord.io/docs/reference/errors.md#authentication_required), [`api_key_invalid`](https://ownrecord.io/docs/reference/errors.md#api_key_invalid), [`dry_run_not_supported`](https://ownrecord.io/docs/reference/errors.md#dry_run_not_supported), [`entitlement_required`](https://ownrecord.io/docs/reference/errors.md#entitlement_required), [`rate_limited`](https://ownrecord.io/docs/reference/errors.md#rate_limited), [`internal_error`](https://ownrecord.io/docs/reference/errors.md#internal_error).
