Reports
The Peppol Coordinating Authority mandates service providers to report transaction statistics of production data. The reports are divided into two areas: reporting about End User Statistics and reporting about Transaction Statistics. The reports are due on a monthly basis.
The reporting process is described in the Peppol Transaction Statistics Reporting Process documentation.
Arratech automatically reports production statistics for all transactions carried out in our shared access point.
At this time, organizations using a white label access point needs to do their own reporting.
Peppol Transaction Statistics & Arratech Usage Reports
Peppol reporting context
- The Peppol Coordinating Authority requires monthly reporting of production transaction statistics.
- Reporting is split into:
- End User Statistics
- Transaction Statistics
- The process and data requirements are defined in:
- Peppol Transaction Statistics Reporting Process: https://docs.peppol.eu/edelivery/specs/reporting/tsr/bis/
- Peppol BIS Transaction Statistics: https://docs.peppol.eu/poacc/upgrade-3/
Arratech’s role in reporting
- Whitelabel mode: Arratech automatically reports production statistics for all transactions carried out in whitelabel mode in the name of the corresponding organisation.
- Shared mode: Organisations do not need to report these transactions themselves, because they are reported under Arratech’s own scope.
---
Organisation usage reports API
Any member of an organisation can retrieve monthly usage data for their organisation.
Endpoint
GET /orgs/:orgId/usage_reports
Permissions
- Lowest required role:
orgmember. Accepts both Bearer token and API key authentication.
Query parameters
from(required)- Start period in
YYYY-MMformat - Example:
2025-01
- Start period in
to(required)- End period in
YYYY-MMformat (inclusive) - Must be at most 24 months after
from
- End period in
Response shape
A successful 200 response returns an envelope containing the organisation and an array of monthly report objects.
| Field | Type | Description |
|---|---|---|
| orgId | string (UUID) | The organisation's unique identifier. |
| orgName | string | The organisation's display name. |
| reports | UsageReport[] | Monthly reports, ordered chronologically (oldest first). Empty array when there is no precomputed data for the requested range. |
UsageReport object
| Field | Type | Description |
|---|---|---|
| period | string | Reporting month, in YYYY-MM format. |
| orgId | string (UUID) | Organisation identifier. |
| orgName | string | Organisation display name at the time the report was generated. |
| organisationMode | string (enum) | The org's mode when the report was generated: DEMO, SHARED, or WHITELABEL. |
| totalProdTransactionsOut | integer | Production documents sent during the period. |
| totalProdTransactionsIn | integer | Production documents received during the period. |
| totalTestTransactionsOut | integer | Test documents sent during the period. |
| totalTestTransactionsIn | integer | Test documents received during the period. |
| prodParticipantsChangeDuringPeriod | integer | Net change in production participant count during the period (can be negative). |
| testParticipantsChangeDuringPeriod | integer | Net change in test participant count during the period (can be negative). |
| totalProdParticipantCountByPeriodEnd | integer | Cumulative production participant count at the end of the period. |
| totalTestParticipantCountByPeriodEnd | integer | Cumulative test participant count at the end of the period. |
| prodTransactionsPerAp | object (map) | Per-Access-Point production breakdown, keyed by Access Point ID (UUID). See structure below. |
| testTransactionsPerAp | object (map) | Per-Access-Point test breakdown, keyed by Access Point ID (UUID). See structure below. |
| queryExecutionIds | string[] | Internal IDs of the queries used to compute the report (rarely needed by integrators). |
| lastModifiedAt | string (ISO 8601) | When the precomputed report was last updated. |
Each entry in prodTransactionsPerAp and testTransactionsPerAp is keyed by Access Point ID (a UUID) and has the following shape:
| Field | Type | Description |
|---|---|---|
| transactionsOut | integer | Documents sent via this Access Point during the period. |
| transactionsIn | integer | Documents received via this Access Point during the period. |
| apName | string | Display name of the Access Point. |
Example response
{
"orgId": "a3f9c102-84d1-4e57-b8c3-91ef20d4bc77",
"orgName": "Nordicorp AS",
"reports": [
{
"period": "2026-03",
"orgId": "a3f9c102-84d1-4e57-b8c3-91ef20d4bc77",
"orgName": "Nordicorp AS",
"organisationMode": "WHITELABEL",
"totalProdTransactionsOut": 340,
"totalProdTransactionsIn": 218,
"totalTestTransactionsOut": 12,
"totalTestTransactionsIn": 9,
"prodParticipantsChangeDuringPeriod": 3,
"testParticipantsChangeDuringPeriod": 0,
"totalProdParticipantCountByPeriodEnd": 47,
"totalTestParticipantCountByPeriodEnd": 5,
"prodTransactionsPerAp": {
"7d3e2b1a-9c4f-4a21-8e6d-1f2a3b4c5d6e": { "transactionsOut": 340, "transactionsIn": 218, "apName": "EU Central AP 01" }
},
"testTransactionsPerAp": {
"7d3e2b1a-9c4f-4a21-8e6d-1f2a3b4c5d6e": { "transactionsOut": 12, "transactionsIn": 9, "apName": "EU Central AP 01" }
},
"queryExecutionIds": ["qe-7c3a1f02-prod-2026-03", "qe-9d2b4e11-test-2026-03"],
"lastModifiedAt": "2026-04-02T06:14:33Z"
},
{
"period": "2026-04",
"orgId": "a3f9c102-84d1-4e57-b8c3-91ef20d4bc77",
"orgName": "Nordicorp AS",
"organisationMode": "WHITELABEL",
"totalProdTransactionsOut": 412,
"totalProdTransactionsIn": 275,
"totalTestTransactionsOut": 7,
"totalTestTransactionsIn": 4,
"prodParticipantsChangeDuringPeriod": -1,
"testParticipantsChangeDuringPeriod": 1,
"totalProdParticipantCountByPeriodEnd": 46,
"totalTestParticipantCountByPeriodEnd": 6,
"prodTransactionsPerAp": {
"7d3e2b1a-9c4f-4a21-8e6d-1f2a3b4c5d6e": { "transactionsOut": 389, "transactionsIn": 251, "apName": "EU Central AP 01" },
"b8a1f6c2-2d3e-4f10-9a7b-5c6d7e8f9012": { "transactionsOut": 23, "transactionsIn": 24, "apName": "EU West AP 02" }
},
"testTransactionsPerAp": {
"7d3e2b1a-9c4f-4a21-8e6d-1f2a3b4c5d6e": { "transactionsOut": 7, "transactionsIn": 4, "apName": "EU Central AP 01" }
},
"queryExecutionIds": ["qe-1a8f3c44-prod-2026-04", "qe-5b6d2e09-test-2026-04"],
"lastModifiedAt": "2026-05-02T05:58:17Z"
}
]
}In the April report, the per-Access-Point transactionsOut (389 + 23 = 412) and transactionsIn (251 + 24 = 275) sum to the period totals, and the -1 participant change reflects one participant leaving during the month.