Profile-specific senders
Pre-configured builders for Peppol, CEF eDelivery, BDEW, ENTSOG, and EUDAMED. Sensible defaults for crypto algorithms, PMode IDs, HTTP client settings, and message properties are baked in so you don’t have to set them manually.
Generic AS4Sender
No profile defaults applied. You control every AS4 header field, encryption algorithm, and party ID. Use this when your trading network doesn’t match any of the built-in profiles.
The builder pattern
Every sender in phase4 exposes a fluent builder. The same call style applies regardless of which sender you use:Triggering the send
Each builder exposes two methods to trigger sending:| Method | Returns | When to use |
|---|---|---|
sendMessage() | ESuccess | When you handle receipt checking yourself via signalMsgConsumer() |
sendMessageAndCheckForReceipt() | EAS4UserMessageSendResult | Preferred — wraps the entire send + receipt check in one call |
EAS4UserMessageSendResult values
sendMessageAndCheckForReceipt() returns one of these enum values:
| Value | ID | Meaning | Retry? |
|---|---|---|---|
SUCCESS | success | Receipt received — message delivered | — |
INVALID_PARAMETERS | invalid-parameters | A mandatory builder field is missing | No |
TRANSPORT_ERROR | transport-error | Network / HTTP(S) failure | Yes |
TRANSPORT_ERROR_NO_RETRY | transport-error-no-retry | Network failure where retry is unlikely to help | No |
NO_SIGNAL_MESSAGE_RECEIVED | no-signal-msg-received | Response was not a valid AS4 signal message | Yes |
AS4_ERROR_MESSAGE_RECEIVED | as4-error-msg-received | The receiver returned an AS4 error | No |
INVALID_SIGNAL_MESSAGE_RECEIVED | invalid-signal-message-received | Signal message contained neither receipt nor error | Yes |
isSuccess() and isRetryFeasible() on the result to branch your error-handling logic.
When to use which sender
Check for a matching profile
If your network uses Peppol, CEF eDelivery / TOOP, BDEW, ENTSOG, or EUDAMED, use the corresponding profile-specific sender. It sets the correct profile ID, crypto parameters, HTTP timeouts, and mandatory message properties automatically.
Sender pages
Generic AS4
AS4Sender.builderUserMessage() and builderPullRequest()Peppol
Phase4PeppolSender.builder() and sbdhBuilder()CEF eDelivery
Phase4CEFSender.builder()BDEW
Phase4BDEWSender.builder()ENTSOG
Phase4ENTSOGSender.builder()EUDAMED
Phase4EudamedSender.builder()Dynamic Discovery
IAS4EndpointDetailProvider and its implementations