DIWASS API Overview
DIWASS (Digital Information System for Waste Shipments) is the EU platform supporting the digitalisation of transboundary waste shipment procedures under Regulation (EC) No 1013/2006 and Implementing Regulation (EU) 2025/1290.
Commercial software systems can integrate with DIWASS through SOAP web services to:
- submit waste shipment notifications
- manage movement documents
- submit Annex VII documents
- exchange compliance information with competent authorities
This documentation provides an overview of the DIWASS SOAP services and their primary operations.
Architecture Overview
DIWASS exposes a hub-and-spoke SOAP API over HTTPS. Commercial software communicates in two directions:
| Direction | Pattern | Operations |
|---|---|---|
| Outbound (your system → DIWASS) | Request/Response SOAP calls | Submit, Withdraw, Upload |
| Inbound (DIWASS → your system) | Cursor-based polling | GetActions, GetNotifications, GetAnnexVIIList |
Authentication is OAuth 2.0 client credentials per registered commercial software instance. Each call must carry a UserCADomainId or operator-scoped identity context.
Synchronisation is performed using cursor-based polling. Clients store the timestamp returned by DIWASS and use it in subsequent requests to retrieve only new or updated records. The three cursor types (ACTIONS, NOTIFICATIONS, ANNEX_VII) drive all inbound polling — client software should poll each cursor independently per operator.
DIWASS Integration Architecture
The following diagram illustrates how commercial software, competent authorities, and recovery or disposal facilities interact with the DIWASS SOAP API.
Service Groups
- Reference Data — Countries, waste codes, competent authorities, transport modes, recovery/disposal codes, packaging, attachment types
- Operators — GetOperators, GetOperator
- Notifications — SubmitNotification, GetNotification, WithdrawNotification, SubmitNotificationAuthentication, SubmitRFIReply
- Movement Documents — SubmitMovementDocument, SubmitCarrierTransfer, reception and completion certificates, SubmitNotificationSignal
- Annex VII — SubmitAnnexVII, GetAnnexVII, authentication, carrier transfer, reception/completion, take-back, signal
- Attachments — UploadAttachment, GetAttachment
- Pre-Consented Facilities — GetPreConsentedFacilities
- Synchronisation — GetActions, GetNotifications, GetAnnexVIIList (cursor-based polling)
For a high-level view of document lifecycles, see DIWASS Architecture (notification, movement, and Annex VII state diagrams).
Status Transition Reference
Notification lifecycle
DRAFT → SUBMITTED → ACKNOWLEDGED → CONSENTED → MOVING → RECEIVED → COMPLETED
↘ OBJECTED
↘ WITHDRAWN
↘ TAKE_BACK
↘ CANCELLED
Movement Document lifecycle
DRAFT → SUBMITTED → MOVING → RECEIVED → COMPLETED
↘ TAKE_BACK
↘ CANCELLED
Annex VII lifecycle
DRAFT → ANNOUNCED → MOVING → RECEIVED → COMPLETED
↘ TAKE_BACK
↘ CANCELLED
Error Handling
DIWASS SOAP faults follow a standard structure:
<soap:Fault>
<faultcode>Client</faultcode>
<faultstring>VALIDATION_ERROR</faultstring>
<detail>
<diwasskError>
<errorCode>NOT_FOUND</errorCode>
<field>notificationId</field>
<message>Notification DIWASS-NOT-2026-HR-000999 not found</message>
</diwasskError>
</detail>
</soap:Fault>
Common error codes:
| Code | Meaning | Retry? |
|---|---|---|
VALIDATION_ERROR | Invalid field values | No — fix payload |
NOT_FOUND | Referenced ID does not exist | No — check ID |
STATUS_CONFLICT | Operation not allowed in current status | No — check status |
AUTH_ERROR | Token invalid or expired | Yes — re-auth |
RATE_LIMIT | Too many requests | Yes — backoff |
SYSTEM_ERROR | DIWASS internal error | Yes — exponential backoff |