Download OpenAPI specification:
Multi-tenant Peppol document exchange service. Most endpoints require authentication via OAuth 2.0 Client Credentials (obtain a token from POST /api/auth/token).
Localization:
Accept-Language header.Domain model:
Permissions model (practical):
scope=tenant applies across tenant resources, scope=participant limits access to one participant.send_documents, receive_documents, receive_all_documents, read_all_documents, read_participant_info, admin) and can be constrained by outbound ownership.Issues a short-lived access token and long-lived refresh token. Supports both OAuth 2.0 client_credentials and authorization_code grants. For authorization_code, credentials may be supplied either via Authorization: Basic or request body fields. Successful responses are returned as raw OAuth token payloads.
| grant_type required | string Value: "client_credentials" |
| client_id required | string API key |
| client_secret required | string API key |
| scope | string Optional subset of permitted scopes. |
{- "grant_type": "authorization_code",
- "code": "string",
- "client_id": "string",
- "client_secret": "string"
}{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 900,
- "scope": "document:send document:receive"
}| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
{- "users": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "count": 0
}{- "id": "string",
- "extId": "string",
- "email": "user@example.com",
- "firstName": "string",
- "lastName": "string",
- "language": "en",
- "phone": "string",
- "jobTitle": "string",
- "company": "string",
- "avatar": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "otpEnabled": true,
- "participants": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "tenantName": "string",
- "role": "admin",
- "isVerified": true
}
]
}| userId required | string <uuid> |
{- "participants": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "role": "admin"
}
], - "count": 0
}| userId required | string <uuid> |
{- "tenants": [
- {
- "id": "string",
- "extId": "string",
- "name": "string",
- "slug": "string",
- "language": "string",
- "accessPointId": "702dc7ac-1b25-441d-b256-1463188d42e1",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "role": "string",
- "allowToSkipVerification": "no",
- "allowToSkipVerificationReason": "tenant_config"
}
], - "count": 0
}{- "id": "string",
- "extId": "string",
- "email": "user@example.com",
- "firstName": "string",
- "lastName": "string",
- "language": "en",
- "phone": "string",
- "jobTitle": "string",
- "company": "string",
- "avatar": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "otpEnabled": true,
- "participants": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "tenantName": "string",
- "role": "admin",
- "isVerified": true
}
]
}| firstName | string <= 100 characters First name |
| lastName | string <= 100 characters Last name |
| language | string Enum: "en" "cs" "sk" "de" Preferred application language |
| phone | string or null Phone number in E.164 format; send null or an empty string to clear it |
| jobTitle | string or null <= 150 characters Job title; send null or an empty string to clear it |
| company | string or null <= 200 characters Company name; send null or an empty string to clear it |
| avatar | string or null Avatar image as a base64 data URL or raw base64 image string; send null or an empty string to clear it |
{- "firstName": "string",
- "lastName": "string",
- "language": "en",
- "phone": "string",
- "jobTitle": "string",
- "company": "string",
- "avatar": "string"
}{- "success": true,
- "data": {
- "id": "string",
- "extId": "string",
- "email": "user@example.com",
- "firstName": "string",
- "lastName": "string",
- "language": "en",
- "phone": "string",
- "jobTitle": "string",
- "company": "string",
- "avatar": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "otpEnabled": true,
- "participants": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "tenantName": "string",
- "role": "admin",
- "isVerified": true
}
]
}
}| country required | string Country code (e.g. cz, sk) |
| ico required | string |
| extended | boolean When set, includes additional data such as |
{- "success": true,
- "data": {
- "peppolId": "string",
- "scheme": "string",
- "exists": true,
- "participantName": "string",
- "businessCard": { },
- "capabilities": {
- "canReceiveInvoices": true,
- "canReceiveOrders": true,
- "documentTypes": [
- "string"
], - "endpoint": "string"
}, - "cachedAt": "2019-08-24T14:15:22Z",
- "originalIdentifier": "string"
}
}| extended | boolean When set, includes additional data such as |
| identifiers required | Array of strings <= 50 items |
{- "identifiers": [
- "CZ12345678",
- "vat/CZ12345678",
- "cz/12345678",
- "CZ/12345678",
- "0192:87654321"
]
}{- "success": true,
- "data": [
- {
- "peppolId": "string",
- "scheme": "string",
- "exists": true,
- "participantName": "string",
- "businessCard": { },
- "capabilities": {
- "canReceiveInvoices": true,
- "canReceiveOrders": true,
- "documentTypes": [
- "string"
], - "endpoint": "string"
}, - "cachedAt": "2019-08-24T14:15:22Z",
- "originalIdentifier": "string"
}
]
}| peppolId required | string Example: 0192:12345678 |
| extended | boolean When set, includes additional data such as |
{- "success": true,
- "data": {
- "peppolId": "string",
- "scheme": "string",
- "exists": true,
- "participantName": "string",
- "businessCard": { },
- "capabilities": {
- "canReceiveInvoices": true,
- "canReceiveOrders": true,
- "documentTypes": [
- "string"
], - "endpoint": "string"
}, - "cachedAt": "2019-08-24T14:15:22Z",
- "originalIdentifier": "string"
}
}| vatId required | string Example: CZ12345678 |
| extended | boolean When set, includes additional data such as |
{- "success": true,
- "data": {
- "peppolId": "string",
- "scheme": "string",
- "exists": true,
- "participantName": "string",
- "businessCard": { },
- "capabilities": {
- "canReceiveInvoices": true,
- "canReceiveOrders": true,
- "documentTypes": [
- "string"
], - "endpoint": "string"
}, - "cachedAt": "2019-08-24T14:15:22Z",
- "originalIdentifier": "string"
}
}Tenant management. A tenant is the top-level customer workspace or organization account that contains users, participants, API keys, logs, reports, and shared settings.
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "name": "string",
- "slug": "string",
- "language": "string",
- "accessPointId": "702dc7ac-1b25-441d-b256-1463188d42e1",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "role": "string",
- "allowToSkipVerification": "no",
- "allowToSkipVerificationReason": "tenant_config"
}
]
}| extId | string |
| name required | string |
| accessPointId | string <uuid> Optional access point to associate with the tenant. |
| language | string = 2 characters |
{- "extId": "string",
- "name": "string",
- "accessPointId": "702dc7ac-1b25-441d-b256-1463188d42e1",
- "language": "st"
}{- "success": true,
- "data": {
- "id": "string",
- "extId": "string",
- "name": "string",
- "slug": "string",
- "language": "string",
- "accessPointId": "702dc7ac-1b25-441d-b256-1463188d42e1",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "role": "string",
- "allowToSkipVerification": "no",
- "allowToSkipVerificationReason": "tenant_config"
}
}{- "id": "string",
- "extId": "string",
- "name": "string",
- "slug": "string",
- "language": "string",
- "accessPointId": "702dc7ac-1b25-441d-b256-1463188d42e1",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "role": "string",
- "allowToSkipVerification": "no",
- "allowToSkipVerificationReason": "tenant_config"
}| tenantId required | string |
| extId | string |
| name | string |
| language | string = 2 characters |
| accessPointId | string or null <uuid> Optional access point to associate with the tenant, or null to clear it. |
| isActive | boolean |
{- "extId": "string",
- "name": "string",
- "language": "st",
- "accessPointId": "702dc7ac-1b25-441d-b256-1463188d42e1",
- "isActive": true
}{- "id": "string",
- "extId": "string",
- "name": "string",
- "slug": "string",
- "language": "string",
- "accessPointId": "702dc7ac-1b25-441d-b256-1463188d42e1",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "role": "string",
- "allowToSkipVerification": "no",
- "allowToSkipVerificationReason": "tenant_config"
}| tenantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com",
- "firstName": "string",
- "lastName": "string",
- "role": "admin",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}| tenantId required | string |
| userId required | string User UUID or external reference in ext:{extId} format. |
| role | string Enum: "admin" "member" "viewer" |
{- "userId": "string",
- "role": "admin"
}{- "success": true
}| tenantId required | string |
| userId required | string |
| role required | string Enum: "admin" "member" "viewer" |
{- "role": "admin"
}{- "success": true
}Participant management within a tenant. A participant is a concrete business entity under a tenant that sends or receives Peppol documents and has its own identity, verification state, and Peppol registration.
Creates or updates a participant within the tenant bound to the API key (upsert operation). The extId field is required and it identifies the participant—if a participant with that external ID already exists in the tenant, it will be updated with the new fields instead of creating a duplicate. Can only be used with an API key that is tied to exactly one tenant. When mark-as-verified=true is provided and the tenant's allowToSkipVerification mode is not no, the server will try to complete the non-interactive verification flow immediately after creation. In valid mode it runs the Czech business-identity verification checks before marking the participant as verified; in all mode it fully bypasses the remaining verification steps. If the tenant is not allowed to skip verification or the participant country is not supported for the requested flow, the participant is still created and the query flag is ignored.
| mark-as-verified | boolean When |
| extId | string |
| name required | string |
| code | string |
| registrationNumber | string |
| bankAccount | string |
| registrationInfo | string |
| taxId | string |
| vatId | string |
| streetWithNo | string |
| address2 | string |
| city | string |
| region | string |
| postCode | string |
| countryCode | string |
| telephone | string |
| contactPhone | string |
| contactEmail | string |
| website | string |
| logoUrl | string |
| language | string = 2 characters |
object (ParticipantPeppolSettingsInput) |
{- "extId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "string",
- "website": "string",
- "logoUrl": "string",
- "language": "st",
- "peppol": {
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraDocumentTypes": [
- "string"
]
}
}{- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "string",
- "isVerified": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "verifiedRegistrationNumber": "string",
- "verifiedTaxId": "string",
- "verifiedVatId": "string",
- "emailVerified": true,
- "emailVerifiedAt": "2019-08-24T14:15:22Z",
- "registrationVerified": true,
- "registrationVerifiedAt": "2019-08-24T14:15:22Z",
- "bankAccountVerified": true,
- "bankAccountVerifiedAt": "2019-08-24T14:15:22Z",
- "authorizedPersonVerified": true,
- "authorizedPersonVerifiedAt": "2019-08-24T14:15:22Z",
- "phoneVerified": true,
- "phoneVerifiedAt": "2019-08-24T14:15:22Z",
- "peppolRegistration": "none",
- "isCorporation": true,
- "isVatPayer": true,
- "adissrBankAccounts": [
- { }
], - "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
], - "peppol": {
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "autoAcknowledge": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "deletedAt": "2019-08-24T14:15:22Z"
}API-key variant of participant listing. When X-Peppol-Participant-Id is provided, the server resolves the participant from the Peppol identifier and returns the matching accessible participant.
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "string",
- "isVerified": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "verifiedRegistrationNumber": "string",
- "verifiedTaxId": "string",
- "verifiedVatId": "string",
- "emailVerified": true,
- "emailVerifiedAt": "2019-08-24T14:15:22Z",
- "registrationVerified": true,
- "registrationVerifiedAt": "2019-08-24T14:15:22Z",
- "bankAccountVerified": true,
- "bankAccountVerifiedAt": "2019-08-24T14:15:22Z",
- "authorizedPersonVerified": true,
- "authorizedPersonVerifiedAt": "2019-08-24T14:15:22Z",
- "phoneVerified": true,
- "phoneVerifiedAt": "2019-08-24T14:15:22Z",
- "peppolRegistration": "none",
- "isCorporation": true,
- "isVatPayer": true,
- "adissrBankAccounts": [
- { }
], - "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
], - "peppol": {
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "autoAcknowledge": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "deletedAt": "2019-08-24T14:15:22Z"
}
]
}| participantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "string",
- "isVerified": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "verifiedRegistrationNumber": "string",
- "verifiedTaxId": "string",
- "verifiedVatId": "string",
- "emailVerified": true,
- "emailVerifiedAt": "2019-08-24T14:15:22Z",
- "registrationVerified": true,
- "registrationVerifiedAt": "2019-08-24T14:15:22Z",
- "bankAccountVerified": true,
- "bankAccountVerifiedAt": "2019-08-24T14:15:22Z",
- "authorizedPersonVerified": true,
- "authorizedPersonVerifiedAt": "2019-08-24T14:15:22Z",
- "phoneVerified": true,
- "phoneVerifiedAt": "2019-08-24T14:15:22Z",
- "peppolRegistration": "none",
- "isCorporation": true,
- "isVatPayer": true,
- "adissrBankAccounts": [
- { }
], - "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
], - "peppol": {
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "autoAcknowledge": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "deletedAt": "2019-08-24T14:15:22Z"
}When you change fields that are important for validation like name, registrationNumber, vatId and countryCode, you must invoke verification process so the changed values will get propagated to businessCards in Peppol network.
| participantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| extId | string |
| name | string |
| code | string |
| registrationNumber | string |
| bankAccount | string |
| registrationInfo | string |
| taxId | string |
| vatId | string |
| streetWithNo | string |
| address2 | string |
| city | string |
| region | string |
| postCode | string |
| countryCode | string |
| telephone | string |
| contactPhone | string |
| contactEmail | string <email> |
| website | string |
| logoUrl | string |
| language | string = 2 characters |
| rateLimit | string |
| rejectInvalidRegistrations | boolean When true, inbound documents are rejected if the sender's registration number cannot be confirmed in the national business registry. Only enforced for CZ/SK senders. |
| rejectInvalidBankAccounts | boolean When true, inbound documents are rejected if the sender's VAT ID is no longer an active VAT payer (checked via EU VIES). |
object (ParticipantPeppolSettingsInput) |
{- "extId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "st",
- "rateLimit": "string",
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "peppol": {
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraDocumentTypes": [
- "string"
]
}
}{- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "string",
- "isVerified": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "verifiedRegistrationNumber": "string",
- "verifiedTaxId": "string",
- "verifiedVatId": "string",
- "emailVerified": true,
- "emailVerifiedAt": "2019-08-24T14:15:22Z",
- "registrationVerified": true,
- "registrationVerifiedAt": "2019-08-24T14:15:22Z",
- "bankAccountVerified": true,
- "bankAccountVerifiedAt": "2019-08-24T14:15:22Z",
- "authorizedPersonVerified": true,
- "authorizedPersonVerifiedAt": "2019-08-24T14:15:22Z",
- "phoneVerified": true,
- "phoneVerifiedAt": "2019-08-24T14:15:22Z",
- "peppolRegistration": "none",
- "isCorporation": true,
- "isVatPayer": true,
- "adissrBankAccounts": [
- { }
], - "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
], - "peppol": {
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "autoAcknowledge": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "deletedAt": "2019-08-24T14:15:22Z"
}| participantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "message": "string"
}Returns current Peppol registration details for a participant, including whether it is registered, date of registration, and all active Peppol IDs.
| participantId required | string <uuid> |
{- "success": true,
- "data": {
- "registered": true,
- "registeredAt": "2026-01-01T10:00:00.000Z",
- "peppolRegistration": "all",
- "peppolIds": [
- "iso6523-actorid-upis::9915:cz12345678",
- "iso6523-actorid-upis::0208:12345678"
]
}
}Registers a fully-verified participant to Peppol. All 5 verification steps must be completed (email, registration, bankAccount, authorizedPerson, phone). Creates a peppolIds record (iso6523-actorid-upis::{ICD}:{registrationNumber}) and stores the requested participant Peppol registration scope. Requires PEPPOL_AP_ENDPOINT_URL environment variable to be set.
| participantId required | string <uuid> |
| peppolRegistration | string Default: "all" Enum: "sending-only" "all" Requested Peppol registration scope. Use |
{- "peppolRegistration": "sending-only"
}{- "success": true,
- "data": {
- "peppolId": "iso6523-actorid-upis::0154:12345678",
- "peppolRegistration": "all"
}
}Removes the participant's Peppol registration. Deactivates all peppolIds records, deletes SMP service metadata, and sets participant.peppolRegistration to none.
| participantId required | string <uuid> |
{- "success": true,
- "data": {
- "unregistered": true
}
}| participantId required | string <uuid> |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "users": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "role": "admin"
}
], - "count": 0
}| participantId required | string <uuid> |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| userId required | string <uuid> |
| role | string Default: "reader" Enum: "admin" "member" "sender" "reader" "viewer" |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "admin"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| participantId required | string <uuid> |
| userId required | string <uuid> |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| role required | string Enum: "admin" "member" "sender" "reader" "viewer" |
{- "role": "admin"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| participantId required | string <uuid> |
| userId required | string <uuid> |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Multi-step verification flow: (1) email verified, (2) business identity, (3) authorized person. Returns current stage with per-stage issues and a verificationUrl for finishing the flow in the web UI. When the optional callback query parameter is provided, the generated verificationUrl preserves it and the web flow redirects back to that URL after verification is finished or when the user cancels. You can call this endpoint multiple times to continue the flow where you left off, or to re-run failed steps after fixing the reported issues. When the flow is completed, the participant is automatically registered to Peppol and can send/receive documents via the network.
| participantId required | string <uuid> |
| lang | string Default: "cs" Enum: "cs" "en" "sk" Language for email notifications and error messages |
| callback | string <uri> Optional absolute http/https URL. When valid, it is appended to the returned verificationUrl and used as the redirect target after verification is finished or cancelled. |
{- "success": true,
- "data": {
- "currentStage": "EMAIL",
- "verificationUrl": "/verify/peppol/eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyLTEiLCJwYXJ0aWNpcGFudElkIjoicGFydGljaXBhbnQtMSJ9.signature?callback=https%3A%2F%2Fapp.example.com%2Fverification%2Fdone",
- "stages": {
- "property1": {
- "completed": true,
- "completedAt": "2019-08-24T14:15:22Z",
- "issues": [
- {
- "code": "ARES_DIC_MISMATCH",
- "message": "string"
}
]
}, - "property2": {
- "completed": true,
- "completedAt": "2019-08-24T14:15:22Z",
- "issues": [
- {
- "code": "ARES_DIC_MISMATCH",
- "message": "string"
}
]
}
}, - "verification": {
- "verificationId": "72d12273-0723-448e-a9f6-f7957128efa5",
- "variableSymbol": "9987654321",
- "amount": 25,
- "currency": "CZK",
- "expiresAt": "2019-08-24T14:15:22Z",
- "status": "pending",
- "qrCodeDataUrl": "string",
- "qrCodeHtml": "string"
}
}
}Marks a participant as fully verified by bypassing the bank-account micro-payment and authorised-person confirmation steps.
This endpoint is available exclusively to tenants whose allowToSkipVerification mode is not no:
Mode behaviour:
valid – ARES + ADISSPR business-identity validation is still performed; the company must be active and found in the Czech business registry.all – full bypass; all interactive and business-identity checks are skipped.Country support:
Steps performed internally:
participant.countryCode is CZvalid: runs ARES + ADISSPR validation (company must be active and found)true (email, registration, bankAccount, authorizedPerson, phone)isVerified = trueparticipant_marked_as_verifiedAccess control: JWT authentication required, tenant admin role.
| participantId required | string <uuid> |
{- "success": true,
- "data": {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "string",
- "isVerified": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "verifiedRegistrationNumber": "string",
- "verifiedTaxId": "string",
- "verifiedVatId": "string",
- "emailVerified": true,
- "emailVerifiedAt": "2019-08-24T14:15:22Z",
- "registrationVerified": true,
- "registrationVerifiedAt": "2019-08-24T14:15:22Z",
- "bankAccountVerified": true,
- "bankAccountVerifiedAt": "2019-08-24T14:15:22Z",
- "authorizedPersonVerified": true,
- "authorizedPersonVerifiedAt": "2019-08-24T14:15:22Z",
- "phoneVerified": true,
- "phoneVerifiedAt": "2019-08-24T14:15:22Z",
- "peppolRegistration": "none",
- "isCorporation": true,
- "isVatPayer": true,
- "adissrBankAccounts": [
- { }
], - "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
], - "peppol": {
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "autoAcknowledge": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "deletedAt": "2019-08-24T14:15:22Z"
}
}| participantId required | string |
{- "status": "string",
- "verification": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "variableSymbol": "string",
- "status": "string",
- "paymentReceivedAt": "2019-08-24T14:15:22Z",
- "verifiedAt": "2019-08-24T14:15:22Z",
- "refundSentAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "pendingManualReview": true,
- "reviewNote": "string"
}
}Creates or updates a participant within the tenant bound to the API key (upsert operation). The external ID is provided in the route path, and the participant is identified by this external ID—if a participant with that external ID already exists in the tenant, it will be updated with the request body fields instead of creating a duplicate. Can only be used with an API key that is tied to exactly one tenant. When mark-as-verified=true is provided and the tenant's allowToSkipVerification mode is not no, the server will try to complete the non-interactive verification flow immediately after creation.
| extId required | string External identifier for the participant (from URL path) |
| mark-as-verified | boolean When |
| extId | string |
| name required | string |
| code | string |
| registrationNumber | string |
| bankAccount | string |
| registrationInfo | string |
| taxId | string |
| vatId | string |
| streetWithNo | string |
| address2 | string |
| city | string |
| region | string |
| postCode | string |
| countryCode | string |
| telephone | string |
| contactPhone | string |
| contactEmail | string |
| website | string |
| logoUrl | string |
| language | string = 2 characters |
object (ParticipantPeppolSettingsInput) |
{- "extId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "string",
- "website": "string",
- "logoUrl": "string",
- "language": "st",
- "peppol": {
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraDocumentTypes": [
- "string"
]
}
}{- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "string",
- "isVerified": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "verifiedRegistrationNumber": "string",
- "verifiedTaxId": "string",
- "verifiedVatId": "string",
- "emailVerified": true,
- "emailVerifiedAt": "2019-08-24T14:15:22Z",
- "registrationVerified": true,
- "registrationVerifiedAt": "2019-08-24T14:15:22Z",
- "bankAccountVerified": true,
- "bankAccountVerifiedAt": "2019-08-24T14:15:22Z",
- "authorizedPersonVerified": true,
- "authorizedPersonVerifiedAt": "2019-08-24T14:15:22Z",
- "phoneVerified": true,
- "phoneVerifiedAt": "2019-08-24T14:15:22Z",
- "peppolRegistration": "none",
- "isCorporation": true,
- "isVatPayer": true,
- "adissrBankAccounts": [
- { }
], - "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
], - "peppol": {
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "autoAcknowledge": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "deletedAt": "2019-08-24T14:15:22Z"
}When X-Peppol-Participant-Id is provided, the server resolves the participant from the Peppol identifier within the tenant and returns only the matching accessible participant.
| tenantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "string",
- "isVerified": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "verifiedRegistrationNumber": "string",
- "verifiedTaxId": "string",
- "verifiedVatId": "string",
- "emailVerified": true,
- "emailVerifiedAt": "2019-08-24T14:15:22Z",
- "registrationVerified": true,
- "registrationVerifiedAt": "2019-08-24T14:15:22Z",
- "bankAccountVerified": true,
- "bankAccountVerifiedAt": "2019-08-24T14:15:22Z",
- "authorizedPersonVerified": true,
- "authorizedPersonVerifiedAt": "2019-08-24T14:15:22Z",
- "phoneVerified": true,
- "phoneVerifiedAt": "2019-08-24T14:15:22Z",
- "peppolRegistration": "none",
- "isCorporation": true,
- "isVatPayer": true,
- "adissrBankAccounts": [
- { }
], - "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
], - "peppol": {
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "autoAcknowledge": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "deletedAt": "2019-08-24T14:15:22Z"
}
]
}Creates a new participant in the specified tenant. When mark-as-verified=true is provided and the tenant's allowToSkipVerification mode is not no, the server will try to complete the non-interactive verification flow immediately after creation. In valid mode it runs the Czech business-identity verification checks before marking the participant as verified; in all mode it fully bypasses the remaining verification steps. If the tenant is not allowed to skip verification or the participant country is not supported for the requested flow, the participant is still created and the query flag is ignored.
| tenantId required | string |
| mark-as-verified | boolean When |
| extId | string |
| name required | string |
| code | string |
| registrationNumber | string |
| bankAccount | string |
| registrationInfo | string |
| taxId | string |
| vatId | string |
| streetWithNo | string |
| address2 | string |
| city | string |
| region | string |
| postCode | string |
| countryCode | string |
| telephone | string |
| contactPhone | string |
| contactEmail | string |
| website | string |
| logoUrl | string |
| language | string = 2 characters |
object (ParticipantPeppolSettingsInput) |
{- "extId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "string",
- "website": "string",
- "logoUrl": "string",
- "language": "st",
- "peppol": {
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraDocumentTypes": [
- "string"
]
}
}{- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "name": "string",
- "code": "string",
- "registrationNumber": "string",
- "bankAccount": "string",
- "registrationInfo": "string",
- "taxId": "string",
- "vatId": "string",
- "streetWithNo": "string",
- "address2": "string",
- "city": "string",
- "region": "string",
- "postCode": "string",
- "countryCode": "string",
- "telephone": "string",
- "contactPhone": "string",
- "contactEmail": "user@example.com",
- "website": "string",
- "logoUrl": "string",
- "language": "string",
- "isVerified": true,
- "blocked": true,
- "blockedReason": "string",
- "rateLimit": "string",
- "verifiedRegistrationNumber": "string",
- "verifiedTaxId": "string",
- "verifiedVatId": "string",
- "emailVerified": true,
- "emailVerifiedAt": "2019-08-24T14:15:22Z",
- "registrationVerified": true,
- "registrationVerifiedAt": "2019-08-24T14:15:22Z",
- "bankAccountVerified": true,
- "bankAccountVerifiedAt": "2019-08-24T14:15:22Z",
- "authorizedPersonVerified": true,
- "authorizedPersonVerifiedAt": "2019-08-24T14:15:22Z",
- "phoneVerified": true,
- "phoneVerifiedAt": "2019-08-24T14:15:22Z",
- "peppolRegistration": "none",
- "isCorporation": true,
- "isVatPayer": true,
- "adissrBankAccounts": [
- { }
], - "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
], - "peppol": {
- "rejectInvalidRegistrations": true,
- "rejectInvalidBankAccounts": true,
- "autoAcknowledge": true,
- "acceptInvoices": true,
- "acceptOrders": true,
- "acceptDespatchAdvices": true,
- "acceptOrderConfirmations": true,
- "acceptReceiptAdvices": true,
- "acceptOrderModifications": true,
- "acceptCatalogues": true,
- "extraPeppolIds": [
- "string"
], - "extraDocumentTypes": [
- "string"
]
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "deletedAt": "2019-08-24T14:15:22Z"
}Returns the stored source document payload. Supported source formats include UBL, ISDOC, ISDOCX, POHODA, MRP, MONEY_S3, CII, FACTUR_X, ORDER_X, and ZUGFERD.
| documentId required | string |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Download the document converted to the specified format. Supported formats: isdoc, pohoda, mrp, money-s3, datev, cii, factur-x, zugferd, order-x, isdocx, ubl-json.
| format required | string Enum: "isdoc" "pohoda" "mrp" "money-s3" "datev" "cii" "factur-x" "zugferd" "order-x" "isdocx" "ubl-json" Target download format. |
| documentId required | string |
Sends an outbound draft document via the Peppol network. Validates that the document is in draft status, direction is outbound, the sender participant is verified, senderPeppolId belongs to the participant, the UBL content is valid, and the receiver is reachable on the Peppol network. On success the document status transitions to pending.
| documentId required | string |
{- "data": {
- "documentId": "string",
- "status": "queued"
}
}Creates an outbound document and enqueues it for PEPPOL transmission. Payload is uploaded directly in request body. Receiver, document type, invoice/credit note kind, and document number are auto-detected from document content when possible. Query parameters can override detected values. The sender's Peppol ID is resolved from the authenticated participant unless senderParticipantId is provided.
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Creates an outbound document and enqueues it for PEPPOL transmission. Payload is uploaded directly in request body. Receiver, document type, invoice/credit note kind, and document number are auto-detected from document content when possible. Query parameters can override detected values. The sender's Peppol ID is resolved from the authenticated participant unless senderParticipantId is provided.
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Upload and send a document. The format path parameter specifies the source format (e.g. pohoda, mrp, money-s3, cii, factur-x, zugferd, order-x, isdocx, ubl-json). Supported formats: isdoc, pohoda, mrp, money-s3, datev, cii, factur-x, zugferd, order-x, isdocx, ubl-json.
| format required | string Enum: "isdoc" "pohoda" "mrp" "money-s3" "datev" "cii" "factur-x" "zugferd" "order-x" "isdocx" "ubl-json" Source format of the uploaded document. |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Upload and send a document. The format path parameter specifies the source format (e.g. pohoda, mrp, money-s3, cii, factur-x, zugferd, order-x, isdocx, ubl-json).
| format required | string Enum: "pohoda" "mrp" "money-s3" "cii" "factur-x" "zugferd" "order-x" "isdocx" "ubl-json" Source format of the uploaded document. |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Accepts ISDOC XML content and converts it to UBL before validation and transmission.
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Accepts ISDOC XML content and converts it to UBL before validation and transmission.
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Creates an outbound document and enqueues it for PEPPOL transmission. Payload is uploaded directly in request body. Receiver, document type, invoice/credit note kind, and document number are auto-detected from document content when possible. Query parameters can override detected values. The sender's Peppol ID is resolved from the authenticated participant unless senderParticipantId is provided.
| participantId required | string |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Creates an outbound document and enqueues it for PEPPOL transmission. Payload is uploaded directly in request body. Receiver, document type, invoice/credit note kind, and document number are auto-detected from document content when possible. Query parameters can override detected values. The sender's Peppol ID is resolved from the authenticated participant unless senderParticipantId is provided.
| participantId required | string |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Upload and send a document on behalf of a participant. The format path parameter specifies the source format. Supported formats: isdoc, pohoda, mrp, money-s3, datev, cii, factur-x, zugferd, order-x, isdocx, ubl-json.
| format required | string Enum: "isdoc" "pohoda" "mrp" "money-s3" "datev" "cii" "factur-x" "zugferd" "order-x" "isdocx" "ubl-json" Source format of the uploaded document. |
| participantId required | string |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Upload and send a document on behalf of a participant. The format path parameter specifies the source format.
| format required | string Enum: "pohoda" "mrp" "money-s3" "cii" "factur-x" "zugferd" "order-x" "isdocx" "ubl-json" Source format of the uploaded document. |
| participantId required | string |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Creates an outbound document and enqueues it for PEPPOL transmission. Payload is uploaded directly in request body. Receiver, document type, invoice/credit note kind, and document number are auto-detected from document content when possible. Query parameters can override detected values. The sender's Peppol ID is resolved from the authenticated participant unless senderParticipantId is provided.
| tenantId required | string |
| participantId required | string |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Creates an outbound document and enqueues it for PEPPOL transmission. Payload is uploaded directly in request body. Receiver, document type, invoice/credit note kind, and document number are auto-detected from document content when possible. Query parameters can override detected values. The sender's Peppol ID is resolved from the authenticated participant unless senderParticipantId is provided.
| tenantId required | string |
| participantId required | string |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}| tenantId required | string |
| participantId required | string |
| direction | string Enum: "inbound" "outbound" |
| documentTypes | string Example: documentTypes=invoice,creditnote Comma-separated list of document types to include. Use |
| excludeDocumentTypes | string Example: excludeDocumentTypes=mlr Comma-separated list of document types to exclude from statistics. Supported values: invoice, creditnote, order, order-response, order-change, order-cancellation, despatch-advice, receipt-advice, catalogue, mlr, invoice-response, other. |
{- "success": true,
- "data": [
- {
- "status": "pending",
- "count": 12
}
]
}Upload and send a document on behalf of a tenant participant. The format path parameter specifies the source format. Supported formats: isdoc, pohoda, mrp, money-s3, datev, cii, factur-x, zugferd, order-x, isdocx, ubl-json.
| format required | string Enum: "isdoc" "pohoda" "mrp" "money-s3" "datev" "cii" "factur-x" "zugferd" "order-x" "isdocx" "ubl-json" Source format of the uploaded document. |
| tenantId required | string |
| participantId required | string |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}Upload and send a document on behalf of a tenant participant. The format path parameter specifies the source format.
| format required | string Enum: "pohoda" "mrp" "money-s3" "cii" "factur-x" "zugferd" "order-x" "isdocx" "ubl-json" Source format of the uploaded document. |
| tenantId required | string |
| participantId required | string |
| receiverParticipantId | string Example: receiverParticipantId=0245:9876543210 Optional receiver Peppol ID override in |
| documentTypeId | string Example: documentTypeId=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1 Optional document type identifier override. When omitted, type is auto-detected from document content. |
| documentNumber | string Example: documentNumber=INV-2026-001 Optional document number override. When omitted, number is auto-detected from document content when possible. |
| senderParticipantId | string Example: senderParticipantId=0245:1234567890 Optional sender Peppol ID override. Must belong to the authenticated participant. |
| processId | string Example: processId=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 Optional process/profile override. When omitted, process is inferred from payload and/or document type. |
| wait-for-result | boolean Default: false When set, response returns current SQL-backed document status payload (same shape as /api/documents/{documentId}/status). If a duplicate invoice number already exists, returns status of the existing document instead of creating a new one. |
| overwrite | boolean Default: false When true, allows creating a new outbound document even if another outbound document with the same detected/overridden document number already exists for the same sender. |
Raw XML document content (UTF-8).
{- "success": true,
- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "accepted",
- "senderPeppolId": "0245:1234567890",
- "receiverPeppolId": "0245:9876543210",
- "documentTypeIdentifier": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier.
| tenantId | string Optional tenant filter. |
| participantId | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| direction | string Enum: "inbound" "outbound" |
| status | string |
| documentTypes | string Example: documentTypes=invoice,creditnote Comma-separated list of document types to include. Use |
| excludeDocumentTypes | string Example: excludeDocumentTypes=mlr Comma-separated list of document types to exclude from results. Useful for hiding response document types (e.g. |
| documentNumber | string |
| format | string |
| dateFrom | string <date-time> |
| dateTo | string <date-time> |
| search | string |
| messageId | string <uuid> Filter by exact Peppol SBDH message identifier (UUID). Useful for correlating a response document (MLR, ILR, Order Response) with the original document it references. |
| order | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "senderId": "string",
- "receiverId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "documentType": "invoice",
- "documentNumber": "string",
- "originalFormat": "UBL",
- "status": "string",
- "validationStatus": "need-validation",
- "direction": "inbound",
- "isRead": true,
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "readAt": "2019-08-24T14:15:22Z",
- "messageId": "string"
}
]
}Returns grouped document statistics in the form { status, count }, scoped by the authenticated principal and optional filters.
| tenantId | string Optional tenant filter. |
| participantId | string <uuid> |
| direction | string Enum: "inbound" "outbound" |
| documentTypes | string Example: documentTypes=invoice,creditnote Comma-separated list of document types to include. Use |
| excludeDocumentTypes | string Example: excludeDocumentTypes=mlr Comma-separated list of document types to exclude from statistics. Supported values: invoice, creditnote, order, order-response, order-change, order-cancellation, despatch-advice, receipt-advice, catalogue, mlr, invoice-response, other. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "status": "pending",
- "count": 12
}
]
}{- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "senderId": "string",
- "receiverId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "documentType": "invoice",
- "documentNumber": "string",
- "originalFormat": "UBL",
- "status": "string",
- "validationStatus": "need-validation",
- "direction": "inbound",
- "isRead": true,
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "readAt": "2019-08-24T14:15:22Z",
- "messageId": "string"
}| documentId required | string |
| documentNumber | string |
| documentType | string |
| status | string |
| metadata | object |
{- "documentNumber": "string",
- "documentType": "string",
- "status": "string",
- "metadata": { }
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Marks an inbound document as confirmed. If the document has PEPPOL IDs, sends a PEPPOL MLR (Message Level Response, BIS 36) with response code AP (Accepted) to the original sender. Idempotent.
| documentId required | string |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Rejects an inbound document. If the document has PEPPOL IDs, sends a PEPPOL MLR (Message Level Response, BIS 36) with response code RE (Rejected) to the original sender. Idempotent.
| documentId required | string |
| reason | string Optional rejection reason |
{- "reason": "string"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Sends a business-level acceptance response for an inbound document. For invoice documents (invoice, credit-note, debit-note), sends an Invoice Message Response (IMR, BIS 63) with code AP. For order documents, sends an OrderResponse (BIS 28) with code AP. Requires the document to have PEPPOL IDs.
| documentId required | string |
| responseCode | string Default: "AP" Enum: "AB" "IP" "UQ" "CA" "RE" "AP" "PD" Response code to send. Defaults to AP (Accepted). For invoice documents (IMR, BIS 63) valid values are: AB (Acknowledgement of receipt), IP (In process), UQ (Under query), CA (Conditionally accepted), RE (Rejected), AP (Accepted), PD (Payment initiated). For order documents (OrderResponse, BIS 28) valid values are: AP (Accepted), RE (Rejected). |
| note | string Optional acceptance note |
| effectiveDate | string <date> Optional effective date (ISO 8601 date) |
{- "responseCode": "AP",
- "note": "string",
- "effectiveDate": "2019-08-24"
}{- "data": {
- "documentId": "string",
- "responseCode": "AP",
- "status": "queued"
}
}Sends a business-level rejection response for an inbound document. For invoice documents, sends an Invoice Message Response (IMR, BIS 63) with code RE (Rejected). For order documents, sends an OrderResponse (BIS 28) with code RE. The response code can be overridden via the request body. Requires the document to have PEPPOL IDs.
| documentId required | string |
| responseCode | string Default: "RE" Enum: "AB" "IP" "UQ" "CA" "RE" "AP" "PD" Response code to send. Defaults to RE (Rejected). For invoice documents (IMR, BIS 63) valid values are: AB (Acknowledgement of receipt), IP (In process), UQ (Under query), CA (Conditionally accepted), RE (Rejected), AP (Accepted), PD (Payment initiated). For order documents (OrderResponse, BIS 28) valid values are: AP (Accepted), RE (Rejected). |
| note | string Optional note to include in the business response. |
| effectiveDate | string <date> Optional effective date (ISO 8601 date) |
{- "responseCode": "RE",
- "note": "Invoice does not match the purchase order.",
- "effectiveDate": "2019-08-24"
}{- "data": {
- "documentId": "string",
- "responseCode": "RE",
- "status": "queued"
}
}Sends a custom business-level response for an inbound document. For invoice documents, uses IMR (BIS 63). For order documents, uses OrderResponse (BIS 28). Requires the document to have PEPPOL IDs.
| documentId required | string |
| responseCode required | string For invoices: AB, IP, UQ, CA, RE, AP, PD. For orders: AP, RE. |
| note | string Optional note |
| effectiveDate | string <date> Optional effective date (ISO 8601 date) |
{- "responseCode": "string",
- "note": "string",
- "effectiveDate": "2019-08-24"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Marks an inbound document as read (sets isRead to true, status to confirmed). Once acknowledged, the document is removed from GET /api/documents/inbox with status=pending or status=received, and will appear under status=acknowledged instead. If the document has PEPPOL IDs, an MLR (BIS 36) with response code AP is sent to the original sender as a side-effect. Idempotent — if the document is already read, no change is made but the call succeeds.
| documentId required | string |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Downloads the full envelope JSON metadata from the preferred Peppol log entry for this document. The API prefers successful transmission logs; if none exist, it uses the newest log entry.
| documentId required | string <uuid> |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Creates a new outbound draft from an inbound document by swapping sender and receiver metadata for re-sending.
| documentId required | string |
{- "data": {
- "documentId": "string"
}
}Returns all Peppol transmission log entries that reference this document.
| documentId required | string <uuid> |
| status | string Enum: "received" "sent" "delivery_failed" "permanent_failure" Filter by transmission status. |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "messageId": "string",
- "transmissionId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "protocol": "string",
- "status": "string",
- "errorMessage": "string",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "relatedDocumentId": "f378d447-e861-41e5-b4ef-eeeefde286d7",
- "kind": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}Downloads the receipt XML from the preferred Peppol log entry for this document. The API prefers successful transmission logs; if none exist, it uses the newest log entry. Receipt selection order is primaryReceipt first, then the first item in receipts.
| documentId required | string <uuid> |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Returns document status with flattened transmission and outbound queue metadata on the document payload.
| documentId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "documentId": "string",
- "direction": "inbound",
- "format": "string",
- "documentTypeIdentifier": "string",
- "documentType": "invoice",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "status": "string",
- "validationStatus": "need-validation",
- "isRead": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "messageId": "string",
- "transmissionId": "string",
- "messageStatus": "string",
- "messageSentAt": "2019-08-24T14:15:22Z",
- "messageReceivedAt": "2019-08-24T14:15:22Z",
- "messageError": "string",
- "sendQueueStatus": {
- "status": "string",
- "attempts": 0,
- "maxAttempts": 0,
- "nextAttemptAt": "2019-08-24T14:15:22Z",
- "lastAttemptAt": "2019-08-24T14:15:22Z",
- "lastError": "string",
- "receivingServer": "string"
}
}Validates stored UBL XML content for the document, updates document.validationStatus to valid/invalid, and returns validation result. When the document is already marked as valid, the endpoint immediately returns a successful validation result without re-running validation.
| documentId required | string |
| Accept-Language | string Example: en Preferred response language. Supported values are |
{- "success": true,
- "data": {
- "valid": true,
- "issues": [
- {
- "ruleId": "string",
- "severity": "fatal",
- "message": "string",
- "location": "string"
}
]
}
}Returns inbound documents where the resolved participant is the receiver. The participant must be identified via one of: a participant-scoped API key, the X-Peppol-Participant-Id header, or a JWT with participant IDs.
| limit | integer [ 1 .. 200 ] Default: 50 Maximum number of items to return (1–200). |
| pageToken | string Cursor token returned by a previous request for forward pagination. |
| status | string Example: status=acknowledged Filter by document status. Use |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": {
- "documents": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "senderId": "string",
- "receiverId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "documentType": "invoice",
- "documentNumber": "string",
- "originalFormat": "UBL",
- "status": "string",
- "validationStatus": "need-validation",
- "direction": "inbound",
- "isRead": true,
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "readAt": "2019-08-24T14:15:22Z",
- "messageId": "string"
}
], - "nextPageToken": "string",
- "total": 0,
- "limit": 1
}
}| participantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| direction | string Enum: "inbound" "outbound" |
| status | string |
| documentTypes | string Example: documentTypes=invoice,creditnote Comma-separated list of document types to include. Use |
| excludeDocumentTypes | string Example: excludeDocumentTypes=mlr Comma-separated list of document types to exclude from results. Useful for hiding response document types (e.g. |
| documentNumber | string |
| format | string Enum: "UBL" "ISDOC" "ISDOCX" "POHODA" "CII" "FACTUR_X" "ORDER_X" "ZUGFERD" |
| dateFrom | string <date-time> |
| dateTo | string <date-time> |
| search | string |
| messageId | string <uuid> Filter by exact Peppol SBDH message identifier (UUID). Useful for correlating a response document (MLR, ILR, Order Response) with the original document it references. |
| order | string |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "senderId": "string",
- "receiverId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "documentType": "invoice",
- "documentNumber": "string",
- "originalFormat": "UBL",
- "status": "string",
- "validationStatus": "need-validation",
- "direction": "inbound",
- "isRead": true,
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "readAt": "2019-08-24T14:15:22Z",
- "messageId": "string"
}
]
}| participantId required | string |
| direction | string Enum: "inbound" "outbound" |
| documentTypes | string Example: documentTypes=invoice,creditnote Comma-separated list of document types to include. Use |
| excludeDocumentTypes | string Example: excludeDocumentTypes=mlr Comma-separated list of document types to exclude from statistics. Supported values: invoice, creditnote, order, order-response, order-change, order-cancellation, despatch-advice, receipt-advice, catalogue, mlr, invoice-response, other. |
{- "success": true,
- "data": [
- {
- "status": "pending",
- "count": 12
}
]
}Imports one or more files and stores them as draft documents. Supported input formats include ISDOC, ISDOCX, UBL XML, CII/XRechnung, Factur-X, ZUGFeRD, Order-X, and Pohoda XML. PDFs with embedded XML (for example Factur-X/ZUGFeRD PDF/A-3 or PDF+ISDOC) are also supported.
| participantId required | string |
| allowDuplicates | boolean Default: false When true, documents with duplicate document number and type are imported as new drafts instead of being rejected. |
| files required | Array of strings <binary> [ items <binary > ] One or more invoice/order files to import |
{- "success": true,
- "data": {
- "id": "string",
- "status": "draft",
- "detectedFormat": "UBL",
- "bisFormat": "UBL",
- "senderPeppolId": "string",
- "receiverPeppolId": "string"
}
}| participantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "direction": "inbound",
- "format": "string",
- "documentType": "invoice",
- "documentNumber": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "status": "string",
- "validationStatus": "need-validation",
- "isRead": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "latestMessage": {
- "messageId": "string",
- "transmissionId": "string",
- "status": "string",
- "sentAt": "2019-08-24T14:15:22Z",
- "receivedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
}
]
}| tenantId required | string |
| participantId | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| direction | string Enum: "inbound" "outbound" |
| status | string |
| documentTypes | string Example: documentTypes=invoice,creditnote Comma-separated list of document types to include. Use |
| excludeDocumentTypes | string Example: excludeDocumentTypes=mlr Comma-separated list of document types to exclude from results. Useful for hiding response document types (e.g. |
| documentNumber | string |
| format | string |
| dateFrom | string <date-time> |
| dateTo | string <date-time> |
| search | string |
| messageId | string <uuid> Filter by exact Peppol SBDH message identifier (UUID). Useful for correlating a response document (MLR, ILR, Order Response) with the original document it references. |
| order | string |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "senderId": "string",
- "receiverId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "documentType": "invoice",
- "documentNumber": "string",
- "originalFormat": "UBL",
- "status": "string",
- "validationStatus": "need-validation",
- "direction": "inbound",
- "isRead": true,
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "readAt": "2019-08-24T14:15:22Z",
- "messageId": "string"
}
]
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier.
| tenantId | string Optional tenant filter. |
| participantId | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "clientId": "string",
- "name": "string",
- "tenantId": "string",
- "participantId": "string",
- "scope": "string",
- "permissions": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}
]
}X-Peppol-Participant-Id can be used instead of participantId in the request body. If both are provided, they must identify the same participant.
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| tenantId | string <uuid> |
| participantId | string <uuid> |
| name required | string |
| scope | string Enum: "tenant" "participant" Key context. |
| permissions required | Array of strings Items Enum: "admin" "read_participant_info" "send_documents" "receive_documents" "receive_all_documents" "read_all_documents" Developer API key capabilities. |
| rateLimit | string |
| isActive | boolean |
| expiresAt | string <date-time> |
{- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "name": "string",
- "scope": "tenant",
- "permissions": [
- "admin"
], - "rateLimit": "string",
- "isActive": true,
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "success": true,
- "data": {
- "id": "string",
- "clientId": "string",
- "name": "string",
- "tenantId": "string",
- "participantId": "string",
- "scope": "string",
- "permissions": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}
}{- "id": "string",
- "clientId": "string",
- "name": "string",
- "tenantId": "string",
- "participantId": "string",
- "scope": "string",
- "permissions": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}| apiKeyId required | string |
| name | string |
| participantId | string or null <uuid> |
| scope | string Enum: "tenant" "participant" Key context. |
| permissions | Array of strings Items Enum: "admin" "read_participant_info" "send_documents" "receive_documents" "receive_all_documents" "read_all_documents" Developer API key capabilities. |
| rateLimit | string or null |
| isActive | boolean |
| expiresAt | string or null <date-time> |
{- "name": "string",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "scope": "tenant",
- "permissions": [
- "admin"
], - "rateLimit": "string",
- "isActive": true,
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "id": "string",
- "clientId": "string",
- "name": "string",
- "tenantId": "string",
- "participantId": "string",
- "scope": "string",
- "permissions": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}| participantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "clientId": "string",
- "name": "string",
- "tenantId": "string",
- "participantId": "string",
- "scope": "string",
- "permissions": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}
]
}| participantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| name required | string |
| permissions required | Array of strings Items Enum: "admin" "read_participant_info" "send_documents" "receive_documents" "receive_all_documents" "read_all_documents" Developer API key capabilities. |
| rateLimit | string |
| isActive | boolean |
| expiresAt | string <date-time> |
{- "name": "string",
- "permissions": [
- "admin"
], - "rateLimit": "string",
- "isActive": true,
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "success": true,
- "data": {
- "id": "string",
- "clientId": "string",
- "name": "string",
- "tenantId": "string",
- "participantId": "string",
- "scope": "string",
- "permissions": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier within the tenant.
| tenantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| participantId | string <uuid> |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "clientId": "string",
- "name": "string",
- "tenantId": "string",
- "participantId": "string",
- "scope": "string",
- "permissions": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}
]
}| tenantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| name required | string |
| participantId | string <uuid> |
| scope | string Enum: "tenant" "participant" Key context. |
| permissions required | Array of strings Items Enum: "admin" "read_participant_info" "send_documents" "receive_documents" "receive_all_documents" "read_all_documents" Developer API key capabilities. |
| rateLimit | string |
| isActive | boolean |
| expiresAt | string <date-time> |
{- "name": "string",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "scope": "tenant",
- "permissions": [
- "admin"
], - "rateLimit": "string",
- "isActive": true,
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "success": true,
- "data": {
- "id": "string",
- "clientId": "string",
- "name": "string",
- "tenantId": "string",
- "participantId": "string",
- "scope": "string",
- "permissions": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier.
| tenantId | string <uuid> Optional tenant filter. |
| participantId | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "name": "string",
- "validTo": "2019-08-24T14:15:22Z",
- "isActive": true,
- "token": "b5507016-7da2-4777-a161-1e8042a6a377",
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "updatedAt": "2019-08-24T14:15:22Z",
- "updatedBy": "b0efe45f-0520-4e21-90f0-7e35f137732e"
}
]
}Creates an affiliate token for a participant. Requires tenant admin role.
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| tenantId | string <uuid> |
| participantId required | string <uuid> |
| name required | string |
| validTo | string <date-time> |
| isActive | boolean |
| token | string <uuid> |
{- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "name": "string",
- "validTo": "2019-08-24T14:15:22Z",
- "isActive": true,
- "token": "b5507016-7da2-4777-a161-1e8042a6a377"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "name": "string",
- "validTo": "2019-08-24T14:15:22Z",
- "isActive": true,
- "token": "b5507016-7da2-4777-a161-1e8042a6a377",
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "updatedAt": "2019-08-24T14:15:22Z",
- "updatedBy": "b0efe45f-0520-4e21-90f0-7e35f137732e"
}| affiliateTokenId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "name": "string",
- "validTo": "2019-08-24T14:15:22Z",
- "isActive": true,
- "token": "b5507016-7da2-4777-a161-1e8042a6a377",
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "updatedAt": "2019-08-24T14:15:22Z",
- "updatedBy": "b0efe45f-0520-4e21-90f0-7e35f137732e"
}| affiliateTokenId required | string <uuid> |
| participantId | string <uuid> |
| name | string |
| validTo | string or null <date-time> |
| isActive | boolean |
| token | string <uuid> |
{- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "name": "string",
- "validTo": "2019-08-24T14:15:22Z",
- "isActive": true,
- "token": "b5507016-7da2-4777-a161-1e8042a6a377"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "name": "string",
- "validTo": "2019-08-24T14:15:22Z",
- "isActive": true,
- "token": "b5507016-7da2-4777-a161-1e8042a6a377",
- "createdAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "updatedAt": "2019-08-24T14:15:22Z",
- "updatedBy": "b0efe45f-0520-4e21-90f0-7e35f137732e"
}Returns tenant-scoped audit/event logs. For participant-scoped logs, use /api/participants/{participantId}/event-logs.
| tenantId | string Optional tenant filter. |
| participantId | string Filter by participant ID. |
| userId | string Filter by user ID. |
| eventType | string Filter by event type. |
| severity | string Enum: "info" "peppol" "document" "security" "warning" "error" Filter by severity level. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "string",
- "tenantId": "string",
- "participantId": "string",
- "userId": "string",
- "user": {
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string"
}, - "eventType": "string",
- "severity": "info",
- "message": "string",
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}{- "id": "string",
- "tenantId": "string",
- "participantId": "string",
- "userId": "string",
- "user": {
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string"
}, - "eventType": "string",
- "severity": "info",
- "message": "string",
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z"
}| participantId required | string |
| userId | string Filter by user ID. |
| eventType | string Filter by event type. |
| severity | string Enum: "info" "peppol" "document" "security" "warning" "error" Filter by severity level. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "tenantId": "string",
- "participantId": "string",
- "userId": "string",
- "user": {
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string"
}, - "eventType": "string",
- "severity": "info",
- "message": "string",
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}Returns tenant-scoped audit/event logs for the selected tenant. For participant-scoped logs, use /participants/{participantId}/event-logs.
| tenantId required | string |
| participantId | string Filter by participant ID. |
| userId | string Filter by user ID. |
| eventType | string Filter by event type. |
| severity | string Enum: "info" "peppol" "document" "security" "warning" "error" Filter by severity level. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "string",
- "tenantId": "string",
- "participantId": "string",
- "userId": "string",
- "user": {
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string"
}, - "eventType": "string",
- "severity": "info",
- "message": "string",
- "metadata": { },
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}Peppol reporting endpoints. This section is required only when using our platform as a white-label Peppol AP.
Sends the stored report XML to OpenPeppol reporting recipient. For access-point-scoped reports, sender participant is resolved from accessPoint.primaryParticipantId. For legacy tenant-scoped reports, participantId request body field is still accepted.
| reportId required | string |
| participantId | string <uuid> Legacy fallback for tenant-scoped reports. Ignored for access-point-scoped reports. |
{- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Generates a report XML for the selected access point and period. Reporter ID is resolved from accessPoint.peppolApSeatId, then PEPPOL_AP_SEAT_ID as fallback.
| apId required | string <uuid> |
| reportType required | string Enum: "eusr" "tsr" |
| year | integer [ 2000 .. 3000 ] |
| month | integer [ 1 .. 12 ] |
| overwrite | boolean Default: false |
{- "year": 2000,
- "month": 1,
- "overwrite": false
}{- "success": true,
- "data": {
- "id": "string",
- "tenantId": "string",
- "reportType": "eusr",
- "reporterId": "string",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "reportXml": "string",
- "status": "generated",
- "transmissionId": "string",
- "submittedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| participantId required | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| createdSince | string <date-time> Filter reports created after this ISO 8601 timestamp. |
{- "success": true,
- "data": [
- {
- "id": "string",
- "tenantId": "string",
- "reportType": "eusr",
- "reporterId": "string",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "reportXml": "string",
- "status": "generated",
- "transmissionId": "string",
- "submittedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| tenantId | string Optional tenant filter. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| reportType | string Enum: "eusr" "tsr" |
| status | string Enum: "generated" "submitted" "failed" |
| year | integer Reporting period year. Must be used together with |
| month | integer [ 1 .. 12 ] Reporting period month (1-12). Must be used together with |
| createdSince | string <date-time> Filter reports created after this ISO 8601 timestamp. |
| participantId | string <uuid> Filter by participant (resolves to the participant's tenant). |
{- "success": true,
- "data": [
- {
- "id": "string",
- "tenantId": "string",
- "reportType": "eusr",
- "reporterId": "string",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "reportXml": "string",
- "status": "generated",
- "transmissionId": "string",
- "submittedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}{- "id": "string",
- "tenantId": "string",
- "reportType": "eusr",
- "reporterId": "string",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "reportXml": "string",
- "status": "generated",
- "transmissionId": "string",
- "submittedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| tenantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| reportType | string Enum: "eusr" "tsr" |
| status | string Enum: "generated" "submitted" "failed" |
| year | integer Reporting period year. Must be used together with |
| month | integer [ 1 .. 12 ] Reporting period month (1-12). Must be used together with |
| createdSince | string <date-time> Filter reports created after this ISO 8601 timestamp. |
| participantId | string <uuid> Reserved for future filtering by participant. |
{- "success": true,
- "data": [
- {
- "id": "string",
- "tenantId": "string",
- "reportType": "eusr",
- "reporterId": "string",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "reportXml": "string",
- "status": "generated",
- "transmissionId": "string",
- "submittedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Generates a report XML for the selected tenant and period, stores it in peppol_reports, and returns the created report row. By default, the previous month is used. For tenants linked to an access point, access-point admin/owner permissions are required.
| tenantId required | string |
| reportType required | string Enum: "eusr" "tsr" |
| year | integer [ 2000 .. 3000 ] |
| month | integer [ 1 .. 12 ] |
| reporterId | string Optional explicit reporter ID. If omitted, accessPoint.peppolApSeatId is used for linked tenants, then PEPPOL_AP_SEAT_ID as fallback. |
| overwrite | boolean Default: false When false, returns the latest existing report for the same tenant or access-point context/type/period instead of creating a new one. |
{- "year": 2000,
- "month": 1,
- "reporterId": "string",
- "overwrite": false
}{- "success": true,
- "data": {
- "id": "string",
- "tenantId": "string",
- "reportType": "eusr",
- "reporterId": "string",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "reportXml": "string",
- "status": "generated",
- "transmissionId": "string",
- "submittedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| participantId required | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| createdSince | string <date-time> Filter logs created after this ISO 8601 timestamp. |
| status | string Enum: "received" "sent" "delivery_failed" "permanent_failure" Filter by transmission status. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "messageId": "string",
- "transmissionId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "protocol": "string",
- "status": "string",
- "errorMessage": "string",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "relatedDocumentId": "f378d447-e861-41e5-b4ef-eeeefde286d7",
- "kind": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier.
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| tenantId | string <uuid> Filter by tenant ID. |
| participantId | string <uuid> Filter by participant ID. |
| createdSince | string <date-time> Filter logs created after this ISO 8601 timestamp. |
| status | string Enum: "received" "sent" "delivery_failed" "permanent_failure" Filter by transmission status. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "messageId": "string",
- "transmissionId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "protocol": "string",
- "status": "string",
- "errorMessage": "string",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "relatedDocumentId": "f378d447-e861-41e5-b4ef-eeeefde286d7",
- "kind": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}| logId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "messageId": "string",
- "transmissionId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "protocol": "string",
- "status": "string",
- "errorMessage": "string",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "relatedDocumentId": "f378d447-e861-41e5-b4ef-eeeefde286d7",
- "kind": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier within the tenant.
| tenantId required | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| participantId | string <uuid> Filter by participant ID. |
| status | string Enum: "received" "sent" "delivery_failed" "permanent_failure" Filter by transmission status. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "messageId": "string",
- "transmissionId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "protocol": "string",
- "status": "string",
- "errorMessage": "string",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "relatedDocumentId": "f378d447-e861-41e5-b4ef-eeeefde286d7",
- "kind": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}| participantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "participantId": "string",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "url": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}
]
}| participantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| extId | string |
| tenantId | string <uuid> |
| participantId | string <uuid> |
| url | string <uri> |
| events required | Array of strings non-empty Items Enum: "document.received" "mlr" "invoice.response" "order.response" "document.sent" "document.delivered" "document.failed" "account.verified" "certificate.expiring" |
| documentTypes | Array of strings Items Enum: "*" "invoice" "creditnote" "order" "order-response" "order-change" "order-cancellation" "despatch-advice" "receipt-advice" "catalogue" "mlr" "invoice-response" "other" Optional list of document type categories to filter document events. Use ["*"] to explicitly receive all types. When empty or omitted, all document types are delivered. Has no effect on account.verified and certificate.expiring events. |
{- "extId": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "events": [
- "document.received",
- "mlr"
], - "documentTypes": [
- "invoice",
- "creditnote"
]
}{- "id": "string",
- "tenantId": "string",
- "participantId": "string",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "url": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "secret": "string",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier within the tenant.
| tenantId required | string |
| participantId | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "participantId": "string",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "url": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}
]
}| tenantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| extId | string |
| tenantId | string <uuid> |
| participantId | string <uuid> |
| url | string <uri> |
| events required | Array of strings non-empty Items Enum: "document.received" "mlr" "invoice.response" "order.response" "document.sent" "document.delivered" "document.failed" "account.verified" "certificate.expiring" |
| documentTypes | Array of strings Items Enum: "*" "invoice" "creditnote" "order" "order-response" "order-change" "order-cancellation" "despatch-advice" "receipt-advice" "catalogue" "mlr" "invoice-response" "other" Optional list of document type categories to filter document events. Use ["*"] to explicitly receive all types. When empty or omitted, all document types are delivered. Has no effect on account.verified and certificate.expiring events. |
{- "extId": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "events": [
- "document.received",
- "mlr"
], - "documentTypes": [
- "invoice",
- "creditnote"
]
}{- "id": "string",
- "tenantId": "string",
- "participantId": "string",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "url": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "secret": "string",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier.
| tenantId | string Optional tenant filter. |
| participantId | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "participantId": "string",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "url": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}
]
}| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| extId | string |
| tenantId | string <uuid> |
| participantId | string <uuid> |
| url | string <uri> |
| events required | Array of strings non-empty Items Enum: "document.received" "mlr" "invoice.response" "order.response" "document.sent" "document.delivered" "document.failed" "account.verified" "certificate.expiring" |
| documentTypes | Array of strings Items Enum: "*" "invoice" "creditnote" "order" "order-response" "order-change" "order-cancellation" "despatch-advice" "receipt-advice" "catalogue" "mlr" "invoice-response" "other" Optional list of document type categories to filter document events. Use ["*"] to explicitly receive all types. When empty or omitted, all document types are delivered. Has no effect on account.verified and certificate.expiring events. |
{- "extId": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "events": [
- "document.received",
- "mlr"
], - "documentTypes": [
- "invoice",
- "creditnote"
]
}{- "id": "string",
- "tenantId": "string",
- "participantId": "string",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "url": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "secret": "string",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}{- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "participantId": "string",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "url": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}| webhookId required | string |
| extId | string |
| url | string <uri> |
| events | Array of strings non-empty Items Enum: "document.received" "mlr" "invoice.response" "order.response" "document.sent" "document.delivered" "document.failed" "account.verified" "certificate.expiring" |
| documentTypes | Array of strings or null Enum: "*" "invoice" "creditnote" "order" "order-response" "order-change" "order-cancellation" "despatch-advice" "receipt-advice" "catalogue" "mlr" "invoice-response" "other" Optional list of document type categories to filter document events. Use ["*"] to explicitly receive all types. Set to null or empty array to remove the filter. |
| isActive | boolean |
{- "extId": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "isActive": true
}{- "id": "string",
- "extId": "string",
- "tenantId": "string",
- "participantId": "string",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "url": "string",
- "events": [
- "document.received"
], - "documentTypes": [
- "*"
], - "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}Per-participant allowlist of sender email addresses whose ISDOC/PDF.ISDOC attachments are delivered to the Peppol network.
Returns allowed-email entries. Filter by participantId and optionally tenantId.
| tenantId | string <uuid> Optional tenant filter. |
| participantId | string <uuid> Optional participant filter. Required for participant-scoped users. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Creates an allowed-email entry for a participant accessible to the authenticated tenant user.
| email required | string <email> <= 255 characters |
{- "email": "user@example.com"
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| allowedEmailId required | string <uuid> |
| isActive | boolean |
{- "isActive": true
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| participantId required | string <uuid> |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| participantId required | string <uuid> |
| email required | string <email> <= 255 characters |
{- "email": "user@example.com"
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}Per-participant inbound email gateway addresses used to receive incoming documents by email.
Returns email-gateway entries. Filter by participantId and optionally tenantId.
| tenantId | string <uuid> Optional tenant filter. |
| participantId | string <uuid> Optional participant filter. Required for participant-scoped users. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Creates an email-gateway entry for a participant accessible to the authenticated tenant user.
Request body for creating a new email gateway entry. The email local part is generated on the server.
{ }{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| emailGatewayId required | string <uuid> |
| isActive | boolean |
{- "isActive": true
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| participantId required | string <uuid> |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| participantId required | string <uuid> |
Request body for creating a new email gateway entry. The email local part is generated on the server.
{ }{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "email": "user@example.com",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}Returns notification channels. Filter by participantId and optionally tenantId.
| tenantId | string <uuid> Optional tenant filter. |
| participantId | string <uuid> Optional participant filter. Required for participant-scoped users. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "type": "email",
- "address": "string",
- "isActive": true,
- "sendReceivedInvoices": true,
- "sendDeliveryStatus": true,
- "sendOtherDocumentTypes": true,
- "attachmentType": "none",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Creates a notification channel for a participant accessible to the authenticated tenant user.
| type required | string Enum: "email" "sms" |
| address | string <= 255 characters |
| sendReceivedInvoices | boolean Default: true |
| sendDeliveryStatus | boolean Default: true |
| sendOtherDocumentTypes | boolean Default: true |
| attachmentType | string Default: "original" Enum: "none" "original" "pdf" "isdoc" "isdocx" "cii" "factur-x" "order-x" "zugferd" Attachment variant used for email notifications. Ignored for SMS. |
{- "type": "email",
- "address": "string",
- "sendReceivedInvoices": true,
- "sendDeliveryStatus": true,
- "sendOtherDocumentTypes": true,
- "attachmentType": "none"
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "type": "email",
- "address": "string",
- "isActive": true,
- "sendReceivedInvoices": true,
- "sendDeliveryStatus": true,
- "sendOtherDocumentTypes": true,
- "attachmentType": "none",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| notificationId required | string <uuid> |
| type | string Enum: "email" "sms" |
| address | string <= 255 characters |
| isActive | boolean |
| sendReceivedInvoices | boolean |
| sendDeliveryStatus | boolean |
| sendOtherDocumentTypes | boolean |
| attachmentType | string Enum: "none" "original" "pdf" "isdoc" "isdocx" "cii" "factur-x" "order-x" "zugferd" |
{- "type": "email",
- "address": "string",
- "isActive": true,
- "sendReceivedInvoices": true,
- "sendDeliveryStatus": true,
- "sendOtherDocumentTypes": true,
- "attachmentType": "none"
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "type": "email",
- "address": "string",
- "isActive": true,
- "sendReceivedInvoices": true,
- "sendDeliveryStatus": true,
- "sendOtherDocumentTypes": true,
- "attachmentType": "none",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}| participantId required | string <uuid> |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "type": "email",
- "address": "string",
- "isActive": true,
- "sendReceivedInvoices": true,
- "sendDeliveryStatus": true,
- "sendOtherDocumentTypes": true,
- "attachmentType": "none",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| participantId required | string <uuid> |
| type required | string Enum: "email" "sms" |
| address | string <= 255 characters |
| sendReceivedInvoices | boolean Default: true |
| sendDeliveryStatus | boolean Default: true |
| sendOtherDocumentTypes | boolean Default: true |
| attachmentType | string Default: "original" Enum: "none" "original" "pdf" "isdoc" "isdocx" "cii" "factur-x" "order-x" "zugferd" Attachment variant used for email notifications. Ignored for SMS. |
{- "type": "email",
- "address": "string",
- "sendReceivedInvoices": true,
- "sendDeliveryStatus": true,
- "sendOtherDocumentTypes": true,
- "attachmentType": "none"
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "type": "email",
- "address": "string",
- "isActive": true,
- "sendReceivedInvoices": true,
- "sendDeliveryStatus": true,
- "sendOtherDocumentTypes": true,
- "attachmentType": "none",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}Returns notification log entries. Filter by participantId and optionally tenantId.
| tenantId | string <uuid> Optional tenant filter. |
| participantId | string <uuid> Optional participant filter. Required for participant-scoped users. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date": "2019-08-24T14:15:22Z",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "type": "email",
- "address": "string",
- "subject": "string",
- "body": "string",
- "status": "to-send",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| notificationLogId required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date": "2019-08-24T14:15:22Z",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "type": "email",
- "address": "string",
- "subject": "string",
- "body": "string",
- "status": "to-send",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}| notificationId required | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date": "2019-08-24T14:15:22Z",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "type": "email",
- "address": "string",
- "subject": "string",
- "body": "string",
- "status": "to-send",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| participantId required | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date": "2019-08-24T14:15:22Z",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "type": "email",
- "address": "string",
- "subject": "string",
- "body": "string",
- "status": "to-send",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}X-Peppol-Participant-Id can be used instead of participantId in the request body. If both are provided, they must identify the same participant.
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| email required | string <email> |
| tenantId | string <uuid> |
| participantId | string <uuid> |
| role | string Enum: "admin" "member" "viewer" |
{- "email": "user@example.com",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "role": "admin"
}{- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}X-Peppol-Participant-Id can be used instead of participantId to resolve the participant from a Peppol identifier.
| tenantId | string Optional tenant filter. |
| participantId | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}
]
}{- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}| invitationId required | string |
| role required | string Enum: "admin" "member" "viewer" |
{- "role": "admin"
}{- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}Generates a new token and expiry for an expired or pending invitation and re-sends the invitation email. Requires admin role for tenant-scoped invitations.
| invitationId required | string |
{- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}| participantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "success": true,
- "data": [
- {
- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}
]
}| participantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| email required | string <email> |
| role | string Enum: "admin" "member" "viewer" |
{- "email": "user@example.com",
- "role": "admin"
}{- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}| tenantId required | string |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| pageToken | string Example: pageToken=0 Alias of |
{- "success": true,
- "data": [
- {
- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}
]
}| tenantId required | string |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| email required | string <email> |
| participantId | string <uuid> |
| role | string Enum: "admin" "member" "viewer" |
{- "email": "user@example.com",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "role": "admin"
}{- "id": "string",
- "email": "user@example.com",
- "token": "string",
- "tenantId": "string",
- "participantId": "string",
- "invitedBy": "string",
- "role": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z"
}OAuth 2.0 Authorization Code flow for third-party applications. Allows a developer application to request delegated access to a participant on behalf of a logged-in user. The flow: (1) GET /auth/grant to fetch consent context, (2) POST /auth/grant/authorize (user-authenticated) to issue a short-lived code and redirect, (3) POST /auth/grant/token to exchange the code for access/refresh tokens, (4) POST /auth/grant/refresh to rotate tokens.
Returns the information a consent screen needs to render: application details, required permissions, available participants, and whether the user is already authenticated. An optional Bearer JWT can be included to include participant data.
| client_id required | string The client ID of the developer application requesting access. |
| redirect_uri required | string <uri> The callback URL to redirect to after authorization. Must be in the application's allowed callback URLs. |
| response_type | string Value: "code" |
| countryCode | string Example: countryCode=CZ Two-letter ISO country code of the company to pre-select (e.g. "CZ"). Must be provided together with |
| rn | string Example: rn=12345678 Company registration number to pre-select. Must be provided together with |
| vatId | string Example: vatId=CZ12345678 EU VAT ID to pre-select (e.g. "CZ12345678"). Checked first — if a match is found, |
{- "authenticated": true,
- "requiresLogin": true,
- "participantLocked": true,
- "clientType": "apiKey",
- "client": {
- "clientId": "string",
- "name": "string",
- "description": "string",
- "logoUrl": "string",
- "permissions": [
- "admin"
]
}, - "participants": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "name": "string",
- "registrationNumber": "string",
- "vatId": "string",
- "countryCode": "string"
}
], - "preselectedParticipantId": "94bc9094-80ff-4479-8db2-e8bfc680dfe2",
- "redirectUrlError": "string"
}Validates and revokes the provided refresh token, then issues a fresh pair of access/refresh tokens with the same scope. Implements refresh token rotation.
| refresh_token required | string The refresh token obtained from a previous token issuance. |
{- "refresh_token": "string"
}{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 900,
- "scope": "document:send document:receive"
}Exchanges a short-lived authorization code for an access token and a refresh token. The grant_type must be authorization_code.
| client_id required | string |
| client_secret required | string |
| code required | string The authorization code received from the redirect. |
| redirect_uri required | string <uri> Must exactly match the redirect_uri used in the authorization step. |
| grant_type required | string Value: "authorization_code" |
{- "client_id": "string",
- "client_secret": "string",
- "code": "string",
- "grant_type": "authorization_code"
}{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 900,
- "scope": "document:send document:receive"
}SAPI-SK v1.0 compatible endpoints for machine-to-machine document exchange. Authentication uses OAuth 2.0 client_credentials flow (POST /sapi/auth/token). Document endpoints require a Bearer access token and the X-Peppol-Participant-Id header.
Creates an outbound document and enqueues it for PEPPOL transmission. Requires scope document:send. The senderParticipantId in the metadata must match the Peppol ID resolved from X-Peppol-Participant-Id. The sending participant must be fully verified before documents can be submitted.
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
| Idempotency-Key required | string Example: 550e8400-e29b-41d4-a716-446655440000 Client-generated unique key for idempotent submission. Requests with the same key and identical payload within 24 hours return the original response. |
required | object |
| payload required | string UBL XML document content (UTF-8). |
| payloadFormat required | string Value: "XML" |
| payloadEncoding | string |
| checksum | string Optional SHA-256 hex digest of the payload. |
{- "metadata": {
- "documentId": "INV-2026-001",
- "documentTypeId": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1",
- "processId": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
- "senderParticipantId": "0245:1234567890",
- "receiverParticipantId": "0245:9876543210",
- "creationDateTime": "2019-08-24T14:15:22Z"
}, - "payload": "string",
- "payloadFormat": "XML",
- "payloadEncoding": "string",
- "checksum": "e3b0c44298fc1c149afb..."
}{- "providerDocumentId": "9c7bc5b3-1b1b-4dd7-9940-b8bf59ae8e23",
- "status": "ACCEPTED",
- "receivedAt": "2019-08-24T14:15:22Z",
- "timestamp": "2019-08-24T14:15:22Z"
}Issues a new access + refresh token pair and revokes the supplied refresh token (rotation).
| refresh_token required | string |
{- "refresh_token": "string"
}{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 900,
- "scope": "document:send document:receive"
}Marks the provided refresh token as revoked. Per RFC 7009 §2.2, this endpoint always returns 200 even for unknown or already-expired tokens.
| token | string Refresh token to revoke. |
{- "token": "string"
}{- "success": true,
- "message": "Token revoked successfully",
- "timestamp": "2019-08-24T14:15:22Z"
}OAuth 2.0 client_credentials grant. Exchange your API key clientId / clientSecret for a short-lived access token (15 min) and a long-lived refresh token (30 days).
| grant_type required | string Value: "client_credentials" |
| client_id required | string API key |
| client_secret required | string API key |
| scope | string Optional subset of permitted scopes. |
{- "grant_type": "client_credentials",
- "client_id": "key_abc123",
- "client_secret": "secret_xyz",
- "scope": "document:receive"
}{- "access_token": "string",
- "token_type": "Bearer",
- "expires_in": 900,
- "scope": "document:send document:receive"
}Returns validity metadata for the supplied Bearer access token, including whether a refresh is recommended (< 3 minutes remaining).
{- "valid": true,
- "token_type": "access",
- "client_id": "string",
- "issued_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "expires_in_seconds": 542,
- "should_refresh": false,
- "refresh_recommended_at": "2019-08-24T14:15:22Z"
}Returns a page of inbound documents for the participant identified by X-Peppol-Participant-Id. Requires scope document:receive.
| limit | integer [ 1 .. 100 ] Default: 20 Maximum items per page. |
| pageToken | string Cursor from the previous response for forward pagination. |
| status | string Enum: "RECEIVED" "ACKNOWLEDGED" Filter by acknowledgement status. |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "documents": [
- {
- "providerDocumentId": "9c7bc5b3-1b1b-4dd7-9940-b8bf59ae8e23",
- "documentId": "string",
- "documentTypeId": "string",
- "processId": "string",
- "senderParticipantId": "string",
- "receiverParticipantId": "string",
- "creationDateTime": "2019-08-24T14:15:22Z",
- "status": "RECEIVED",
- "receivedAt": "2019-08-24T14:15:22Z"
}
], - "nextPageToken": "string"
}Returns metadata and the raw XML payload for a single inbound document. Requires scope document:receive.
| documentId required | string <uuid> |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "metadata": {
- "providerDocumentId": "9c7bc5b3-1b1b-4dd7-9940-b8bf59ae8e23",
- "documentId": "string",
- "documentTypeId": "string",
- "processId": "string",
- "senderParticipantId": "string",
- "receiverParticipantId": "string",
- "creationDateTime": "2019-08-24T14:15:22Z",
- "status": "RECEIVED",
- "receivedAt": "2019-08-24T14:15:22Z"
}, - "payload": "string",
- "payloadFormat": "application/xml"
}Marks a received document as acknowledged. Idempotent — calling it again on an already-acknowledged document returns the same response. Requires scope document:receive.
| documentId required | string <uuid> |
| X-Peppol-Participant-Id | string Example: 0245:1234567890 Alternative participant selector in the form |
{- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "status": "ACKNOWLEDGED",
- "acknowledgedDateTime": "2019-08-24T14:15:22Z"
}| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "termsLink": "string",
- "privacyLink": "string",
- "apDomainName": "string",
- "smpDomainName": "string",
- "peppolApSeatId": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "primaryTenantId": "40a27eae-1e52-42e9-ae65-69b14dcde6bb",
- "primaryParticipantId": "77681da5-e6d1-48ad-8fc3-8bb735ade6e6",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}
]
}| name required | string [ 1 .. 255 ] characters |
| description | string or null |
| termsLink | string or null |
| privacyLink | string or null |
| apDomainName | string or null |
| smpDomainName | string or null |
| peppolApSeatId | string or null <= 255 characters |
| isActive | boolean |
| primaryTenantId | string or null <uuid> |
| primaryParticipantId | string or null <uuid> |
{- "name": "string",
- "description": "string",
- "termsLink": "string",
- "privacyLink": "string",
- "apDomainName": "string",
- "smpDomainName": "string",
- "peppolApSeatId": "string",
- "isActive": true,
- "primaryTenantId": "40a27eae-1e52-42e9-ae65-69b14dcde6bb",
- "primaryParticipantId": "77681da5-e6d1-48ad-8fc3-8bb735ade6e6"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "termsLink": "string",
- "privacyLink": "string",
- "apDomainName": "string",
- "smpDomainName": "string",
- "peppolApSeatId": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "primaryTenantId": "40a27eae-1e52-42e9-ae65-69b14dcde6bb",
- "primaryParticipantId": "77681da5-e6d1-48ad-8fc3-8bb735ade6e6",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "termsLink": "string",
- "privacyLink": "string",
- "apDomainName": "string",
- "smpDomainName": "string",
- "peppolApSeatId": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "primaryTenantId": "40a27eae-1e52-42e9-ae65-69b14dcde6bb",
- "primaryParticipantId": "77681da5-e6d1-48ad-8fc3-8bb735ade6e6",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}| apId required | string <uuid> |
| name | string [ 1 .. 255 ] characters |
| description | string or null |
| termsLink | string or null |
| privacyLink | string or null |
| apDomainName | string or null |
| smpDomainName | string or null |
| peppolApSeatId | string or null <= 255 characters |
| isActive | boolean |
| primaryTenantId | string or null <uuid> |
| primaryParticipantId | string or null <uuid> |
{- "name": "string",
- "description": "string",
- "termsLink": "string",
- "privacyLink": "string",
- "apDomainName": "string",
- "smpDomainName": "string",
- "peppolApSeatId": "string",
- "isActive": true,
- "primaryTenantId": "40a27eae-1e52-42e9-ae65-69b14dcde6bb",
- "primaryParticipantId": "77681da5-e6d1-48ad-8fc3-8bb735ade6e6"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "termsLink": "string",
- "privacyLink": "string",
- "apDomainName": "string",
- "smpDomainName": "string",
- "peppolApSeatId": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "primaryTenantId": "40a27eae-1e52-42e9-ae65-69b14dcde6bb",
- "primaryParticipantId": "77681da5-e6d1-48ad-8fc3-8bb735ade6e6",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}| apId required | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| apId required | string <uuid> |
| name required | string [ 1 .. 255 ] characters |
| validFrom | string or null <date-time> |
| validTo | string or null <date-time> |
| apCertificate | string or null |
| smpCertificate | string or null |
| apPrivateKey | string or null Write-only plaintext private key. It is encrypted before storage and never returned by API. |
| smpPrivateKey | string or null Write-only plaintext private key. It is encrypted before storage and never returned by API. |
{- "name": "string",
- "validFrom": "2019-08-24T14:15:22Z",
- "validTo": "2019-08-24T14:15:22Z",
- "apCertificate": "string",
- "smpCertificate": "string",
- "apPrivateKey": "string",
- "smpPrivateKey": "string"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| apId required | string <uuid> |
| certId required | string <uuid> |
| name | string [ 1 .. 255 ] characters |
| validFrom | string or null <date-time> |
| validTo | string or null <date-time> |
| apCertificate | string or null |
| smpCertificate | string or null |
| apPrivateKey | string or null Write-only plaintext private key. It is encrypted before storage and never returned by API. |
| smpPrivateKey | string or null Write-only plaintext private key. It is encrypted before storage and never returned by API. |
{- "name": "string",
- "validFrom": "2019-08-24T14:15:22Z",
- "validTo": "2019-08-24T14:15:22Z",
- "apCertificate": "string",
- "smpCertificate": "string",
- "apPrivateKey": "string",
- "smpPrivateKey": "string"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| apId required | string <uuid> |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| apId required | string <uuid> |
| userId required | string <uuid> |
| role required | string Enum: "owner" "admin" "member" "reader" |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| apId required | string <uuid> |
| userId required | string <uuid> |
| role required | string Enum: "owner" "admin" "member" "reader" |
{- "role": "owner"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| apId required | string <uuid> Access point ID. |
| limit | integer >= 0 Default: 50 Maximum number of items to return. |
| offset | integer >= 0 Default: 0 Zero-based offset into the result set. |
| status | string Enum: "received" "sent" "delivery_failed" "permanent_failure" Filter by transmission status. |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "messageId": "string",
- "transmissionId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "protocol": "string",
- "status": "string",
- "errorMessage": "string",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "relatedDocumentId": "f378d447-e861-41e5-b4ef-eeeefde286d7",
- "kind": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}| apId required | string <uuid> Access point ID. |
| logId required | string <uuid> Peppol log entry ID. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "messageId": "string",
- "transmissionId": "string",
- "senderPeppolId": "string",
- "receiverPeppolId": "string",
- "documentTypeIdentifier": "string",
- "protocol": "string",
- "status": "string",
- "errorMessage": "string",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "relatedDocumentId": "f378d447-e861-41e5-b4ef-eeeefde286d7",
- "kind": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "name": "string",
- "description": "string",
- "isActive": true,
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}
]
}| name required | string |
| description | string or null |
| isActive | boolean |
{- "name": "string",
- "description": "string",
- "isActive": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "name": "string",
- "description": "string",
- "isActive": true,
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "name": "string",
- "description": "string",
- "isActive": true,
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}| developerId required | string <uuid> |
| name | string |
| description | string or null |
| isActive | boolean |
{- "name": "string",
- "description": "string",
- "isActive": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
- "name": "string",
- "description": "string",
- "isActive": true,
- "rateLimit": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}| developerId required | string <uuid> |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "developerId": "835c9fb0-a0ff-4023-8ee5-bb5c770bf07e",
- "name": "string",
- "description": "string",
- "requiredPermissions": "string",
- "allowedLogoutUrls": "string",
- "allowedOrigins": "string",
- "allowedCallbackUrls": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}
]
}| developerId required | string <uuid> |
| name required | string |
| description | string or null |
| redirectUris | Array of strings |
| isActive | boolean |
{- "name": "string",
- "description": "string",
- "redirectUris": [
- "string"
], - "isActive": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "developerId": "835c9fb0-a0ff-4023-8ee5-bb5c770bf07e",
- "name": "string",
- "description": "string",
- "requiredPermissions": "string",
- "allowedLogoutUrls": "string",
- "allowedOrigins": "string",
- "allowedCallbackUrls": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}| developerId required | string <uuid> |
| applicationId required | string <uuid> |
| name | string |
| description | string or null |
| requiredPermissions | string Comma-separated list of required permissions. |
| allowedLogoutUrls | Array of strings |
| allowedOrigins | Array of strings |
| allowedCallbackUrls | Array of strings |
| isActive | boolean |
{- "name": "string",
- "description": "string",
- "requiredPermissions": "string",
- "allowedLogoutUrls": [
- "string"
], - "allowedOrigins": [
- "string"
], - "allowedCallbackUrls": [
- "string"
], - "isActive": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "developerId": "835c9fb0-a0ff-4023-8ee5-bb5c770bf07e",
- "name": "string",
- "description": "string",
- "requiredPermissions": "string",
- "allowedLogoutUrls": "string",
- "allowedOrigins": "string",
- "allowedCallbackUrls": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string"
}| developerId required | string <uuid> |
| applicationId required | string <uuid> |
{- "success": true,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "clientId": "string",
- "name": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}
]
}| developerId required | string <uuid> |
| applicationId required | string <uuid> |
| name required | string |
| rateLimit | string or null |
| isActive | boolean |
| expiresAt | string or null <date-time> |
{- "name": "string",
- "rateLimit": "string",
- "isActive": true,
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "success": true,
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "clientId": "string",
- "name": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z",
- "message": "string"
}
}| developerId required | string <uuid> |
| applicationId required | string <uuid> |
| developerApiKeyId required | string <uuid> |
| name | string |
| rateLimit | string or null |
| isActive | boolean |
| expiresAt | string or null <date-time> |
{- "name": "string",
- "rateLimit": "string",
- "isActive": true,
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "developerApplicationId": "6ef97728-d15f-414a-90f1-e5b529f25259",
- "clientId": "string",
- "name": "string",
- "rateLimit": "string",
- "isActive": true,
- "blocked": true,
- "blockedReason": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "updatedBy": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z"
}{- "success": true,
- "data": [
- {
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
]
}| developerId required | string <uuid> |
| userId required | string <uuid> |
| role required | string Enum: "owner" "admin" "user" "viewer" |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "role": "owner"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}| developerId required | string <uuid> |
| userId required | string <uuid> |
| role required | string Enum: "owner" "admin" "user" "viewer" |
{- "role": "owner"
}{- "success": false,
- "error": {
- "code": "string",
- "message": "string"
}
}Returns invoice formats supported by send/download endpoints.
{- "success": true,
- "data": [
- {
- "key": "ubl",
- "label": "UBL",
- "description": "Peppol-native UBL XML invoice format.",
- "countries": [
- "CZ",
- "SK"
]
}
]
}