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:
    1. End User Statistics
    2. 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-MM format
    • Example: 2025-01
  • to (required)
    • End period in YYYY-MM format (inclusive)
    • Must be at most 24 months after from

Response shape

A successful 200 response returns an envelope containing the organisation and an array of monthly report objects.

FieldTypeDescription
orgIdstring (UUID)The organisation's unique identifier.
orgNamestringThe organisation's display name.
reportsUsageReport[]Monthly reports, ordered chronologically (oldest first). Empty array when there is no precomputed data for the requested range.

UsageReport object

FieldTypeDescription
periodstringReporting month, in YYYY-MM format.
orgIdstring (UUID)Organisation identifier.
orgNamestringOrganisation display name at the time the report was generated.
organisationModestring (enum)The org's mode when the report was generated: DEMO, SHARED, or WHITELABEL.
totalProdTransactionsOutintegerProduction documents sent during the period.
totalProdTransactionsInintegerProduction documents received during the period.
totalTestTransactionsOutintegerTest documents sent during the period.
totalTestTransactionsInintegerTest documents received during the period.
prodParticipantsChangeDuringPeriodintegerNet change in production participant count during the period (can be negative).
testParticipantsChangeDuringPeriodintegerNet change in test participant count during the period (can be negative).
totalProdParticipantCountByPeriodEndintegerCumulative production participant count at the end of the period.
totalTestParticipantCountByPeriodEndintegerCumulative test participant count at the end of the period.
prodTransactionsPerApobject (map)Per-Access-Point production breakdown, keyed by Access Point ID (UUID). See structure below.
testTransactionsPerApobject (map)Per-Access-Point test breakdown, keyed by Access Point ID (UUID). See structure below.
queryExecutionIdsstring[]Internal IDs of the queries used to compute the report (rarely needed by integrators).
lastModifiedAtstring (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:

FieldTypeDescription
transactionsOutintegerDocuments sent via this Access Point during the period.
transactionsInintegerDocuments received via this Access Point during the period.
apNamestringDisplay 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.