-
Notifications
You must be signed in to change notification settings - Fork 18
API Specification
The AP exposes REST APIs for outbound document submission, status queries, and inbound reporting. All APIs are provided via Spring Boot.
Submits a raw business document for outbound transmission. The AP creates the SBDH envelope.
Parameters (path or query):
-
senderID— Peppol Participant ID of the sender -
receiverID— Peppol Participant ID of the receiver -
docTypeID— Peppol Document Type Identifier -
processID— Peppol Process Identifier -
countryC1— Country code of the sender (C1)
Request body: The raw business document (e.g., UBL Invoice XML)
Response:
-
status—queuedornot_queued -
sbdhInstanceID— The SBDH Instance Identifier assigned to this transaction (returned regardless of status, so the Sender Backend can use it for tracking)
Error cases:
- Invalid or missing parameters
- Document validation failure (if verification is enabled)
- AP is shutting down (not accepting new messages)
Submits a complete Standard Business Document (with SBDH already present).
Request body: The complete SBD (SBDH + business document)
Response: Same as above (status + sbdhInstanceID)
All metadata (sender ID, receiver ID, document type, process, C1 country code) is extracted from the SBDH.
Returns the current status of a specific outbound transaction.
Parameters:
-
sbdhInstanceID— The SBDH Instance Identifier
Response:
-
sbdhInstanceID— Echo of the identifier -
status— Current transaction status (pending, sending, sent, failed, permanently_failed) -
attemptCount— Total number of sending attempts so far -
createdDT— When the transaction was created -
completedDT— When successfully completed (null if not yet) -
reportingStatus— Whether reporting has been triggered (pending, reported) -
errorDetails— Summary error from the last failed attempt (null on success) -
attempts— List of sending attempts, each with:as4MessageIDreceiptMessageIDhttpStatusCodeattemptDTattemptStatuserrorDetails
Returns all outbound transactions that are not yet in a final state.
Response: List of outbound transactions with summary fields:
sbdhInstanceIDsenderIDreceiverIDdocTypeIDprocessIDstatusattemptCountcreatedDTerrorDetails
This includes transactions with status: pending, sending, failed (awaiting retry). It excludes sent and permanently_failed.
Triggers the creation of a Peppol Reporting record for a previously received inbound message. Called by the Receiver Backend after it has successfully processed the document.
Parameters (path or query):
-
as4MessageID— The AS4 Message ID of the inbound message -
countryC4— Country code of the final receiver (C4)
Response:
-
status—okorerror -
errorDetails— Error description if the AS4 Message ID was not found or reporting was already triggered
Behavior:
- Looks up the
inbound_transactionby AS4 Message ID. - Stores the C4 country code on the transaction.
- Creates the reporting record using the stored SBDH data + C4 country code.
- Updates
reporting_statustoreported.
Returns the current status of a specific inbound transaction.
Parameters:
-
as4MessageID— The AS4 Message ID from the inbound message
Response:
-
as4MessageID— Echo of the identifier -
incomingID— The phase4 Incoming ID -
sbdhInstanceID— The SBDH Instance Identifier senderIDreceiverIDdocTypeIDprocessID-
status— Current transaction status (received, forwarding, forwarded, forward_failed, permanently_failed) -
isDuplicate— Whether this was a duplicate -
attemptCount— Total number of forwarding attempts -
receivedDT— When the message was received -
completedDT— When successfully completed (null if not yet) -
reportingStatus— Whether reporting has been triggered -
c4CountryCode— C4 country code (null if not yet reported) -
errorDetails— Summary error from the last failed forwarding attempt -
forwardingAttempts— List of forwarding attempts, each with:attemptDTattemptStatuserrorDetails
Returns all inbound transactions that are not yet in a final state.
Response: List of inbound transactions with summary fields:
as4MessageIDincomingIDsbdhInstanceIDsenderIDreceiverIDdocTypeIDprocessIDstatusattemptCountreceivedDTreportingStatuserrorDetails
This includes transactions with status: received, forwarding, forward_failed (awaiting retry). It excludes forwarded and permanently_failed.
- URL paths and exact parameter encoding (path vs query) will be defined during implementation.
- Authentication/authorization mechanism for the APIs is TBD (e.g., API token via
X-Tokenheader as in the standalone project). - All responses are JSON.
It is appreciated if you star the GitHub project if you like it.
Donation link: https://paypal.me/PhilipHelger
- Home
- News and noteworthy
- Running phoss AP
- Architecture Overview
- API Specification
- Configuration Properties
- Code Lists
- Database Design Notes
- Maven Module Structure
- Runtime Extensions
- OpenTelemetry Integration
- Security Considerations
- Peppol Specifics
- Testing Without Peppol Network
- Known Users
- Migrating from phase4-peppol-standalone
- Contributing