wexample / symfony-remote-peppol
Peppol e-delivery through an access point: participants, documents, transmissions, inbox and webhooks, whatever the provider
Requires
- php: >=8.5
- symfony/console: ^7.4 || ^8.0
- symfony/event-dispatcher: ^7.4 || ^8.0
- symfony/http-foundation: ^7.4 || ^8.0
- symfony/routing: ^7.4 || ^8.0
- wexample/symfony-helpers: >=18.0.2
Requires (Dev)
- phpunit/phpunit: ^13
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Version: 2.0.4
Peppol e-delivery through an access point: participants, documents, transmissions, inbox and webhooks, whatever the provider
Table of Contents
Installation
// config/bundles.php Wexample\SymfonyRemotePeppol\WexampleSymfonyRemotePeppolBundle::class => ['all' => true], // and one provider package
# config/routes/wexample_symfony_remote_peppol.yaml — the webhook route, /_peppol/webhook/{provider} wexample_symfony_remote_peppol: resource: '@WexampleSymfonyRemotePeppolBundle/Resources/config/routes.yaml' # config/packages/wexample_symfony_remote_peppol.yaml — only with several access points wexample_symfony_remote_peppol: sender: 'my_provider'
An access point that keeps received documents (InboxInterface) is collected by bin/console peppol:collect, to schedule.
symfony-remote-peppol carries business documents over Peppol, the European e-delivery network, through an access point, whatever the provider. It holds the vocabulary and the plumbing; each provider comes in a package of its own (symfony-remote-peppol-<provider>), as payment providers do beside symfony-remote-payment.
PeppolParticipantis an address on the network:0208:0123456749(Belgian enterprise number),0009:<SIRET>,9925:BE…(Belgian VAT number).PeppolDocumentis what is sent: sender, receiver, document type and process, XML.PeppolDocument::billing()types a Peppol BIS Billing 3.0 invoice or credit note.PeppolTransmissiontells where a sent document stands:queued,delivered,failed.ReceivedDocumentis a document that reached us.
An access point offers capabilities, each an interface: SenderInterface (send, track), InboxInterface (fetch, acknowledge), WebhookParserInterface (its news, signed), DirectoryInterface (who is on Peppol, accepting what). FakeAccessPoint offers them all, in memory, for tests and demos.