diff --git a/app/api/gelijkwaardige-beloning.yml b/app/api/gelijkwaardige-beloning.yml index 7eccfd5..d6c34b6 100644 --- a/app/api/gelijkwaardige-beloning.yml +++ b/app/api/gelijkwaardige-beloning.yml @@ -294,7 +294,7 @@ components: description: This is the resource identifier assigned by the API client to the created resource. This is the id parameter used in path operations, for GET, PUT and DELETE operations. schemas: inquiry-pay-equity: - $ref: 'https://raw.githubusercontent.com/setu-standards/xml-specifications/refs/heads/main/setu-gelijkwaardige-beloning/v1.0/InquirePayEquity-v1.0.yml' + $ref: 'https://raw.githubusercontent.com/setu-standards/xml-specifications/main/setu-gelijkwaardige-beloning/v1.0/InquirePayEquity-v1.0.yml' error-object: type: object properties: @@ -370,4 +370,4 @@ components: ### $ref: 'https://github.com/setu-standards/xml-specifications/raw/refs/heads/main/setu-inlenersbeloning/v1.0/Inlenersbeloning.yml' ##xml: - ## name: 'Inlenersbeloning' \ No newline at end of file + ## name: 'Inlenersbeloning' diff --git a/app/docs/api/README.md b/app/docs/api/README.md index 8e454d0..a24397a 100644 --- a/app/docs/api/README.md +++ b/app/docs/api/README.md @@ -1,13 +1,7 @@ -# API Documentation +# API Documentation -The following pages include the API documentation to implement the SETU Standards for `Purchase to Pay` and for ``Planning & Scheduling``. The API documentation consist of an Open API Specifications, multiple sequence diagrams to better understand how the API endpoints in different systems work together, and additional documentation about handling API request. +This section provides documentation to implement the SETU standards for `Purchase to Pay`, `Planning & Scheduling` and 'Inquiry Pay Equity'. -The following REST API calls are used in the SETU API specifications to create, retrieve, update, and delete SETU messages: +SETU provides Open API Specifications (OAS) for the message sets, which can be implemented by software systems for standardized message exchange. -- **POST**: The POST method is used to send a new message to the API server. It creates a new message, and the server processes and returns the details of the newly created message. -- **GET**: The GET method is used to retrieve a message from the API server. It fetches a specific message or a list of messages without modifying them. -- **PUT**: The PUT method is used to update an existing message. It modifies the entire message or replaces it with new content. - - *Note*: a PUT request is not expected to include all optional elements. Meaning, if you omit an optional element, it will not be overwritten in the database. -- **DELETE**: The DELETE method is used to remove a message from the API server. Once successfully processed, the message will no longer be available. - - The requirements for any changes or deletions (PUT and DELETE) to an existing resource (e.g., determining the deadline for when changes are allowed) is to be agreed upon bilaterally between the involved parties. This is not within the scope of SETU standards and must be handled separately by the parties involved. \ No newline at end of file +In the case of `Purchase to Pay`, it is also possible to use the international Peppol network infrastructure to transport SETU messages. The Peppol-based exchange of SETU messages is described in the [Setu & Peppol](./Setu-Peppol.md) documentation. diff --git a/app/docs/api/Setu-Peppol.md b/app/docs/api/Setu-Peppol.md new file mode 100644 index 0000000..4d56a8b --- /dev/null +++ b/app/docs/api/Setu-Peppol.md @@ -0,0 +1,29 @@ + +# Sending SETU Messages via [Peppol](https://peppol.org/) + +SETU standards define the _content_ and structure of messages for the temporary staffing industry in the Netherlands. While SETU specifies _what_ information is exchanged, it is possible to use the international Peppol network for the actual _transport_ of these messages, alongside other existing methods. Peppol (Pan-European Public Procurement Online) provides a standardized, secure way for organizations to exchange electronic business documents using a 'four-corner model' involving certified Access Points (APs). + +## SETU and Peppol + +Through agreements between SETU and the [Dutch Peppol Authority](https://www.peppolautoriteit.nl/) (NPa), standard SETU XML messages can now be sent using the Peppol network infrastructure. + +To enable this, specific **Document Type Identifiers** are registered within the Peppol network for the various SETU message types. These identifiers are crucial for the **identification and processing** of the messages within the network. They ensure that the receiving system recognizes the type of SETU message and can process its content accordingly. **The image below provides an example overview of the Document Type Identifiers assigned to SETU messages. For the complete, authoritative list, please refer to the official [Peppol Codelists](https://docs.peppol.eu/edelivery/codelists/) page mentioned below.** + +
+ +![](../../static/img/peppol%20document%20types.png) + +These identifiers are registered in the receiver's Service Metadata Publisher (SMP), which acts as an address book within Peppol. The SMP lists which document types an organization can receive and via which Access Point. When a message is sent, the sending AP queries the central Service Metadata Locator (SML) and then the receiver's SMP to verify that the recipient can handle the specific SETU message type and to determine the correct delivery endpoint (the receiver's AP). + +## How to Use SETU via Peppol + +To send or receive SETU messages via the Peppol network: + +1. **Connect to a Peppol Access Point Provider:** Your organization needs a connection to the Peppol network via a certified Peppol Access Point (AP) provider. You can find a list of providers operating in the Netherlands via the NPa website. While technically possible, implementing your own AP is significantly more complex. +2. **Use the Correct Document Type Identifiers:** Ensure that your software and/or your Access Point provider are configured to use the correct, officially registered Document Type Identifiers for the specific SETU messages you intend to exchange. This Document Type Identifier should be included within the Peppol envelope when sending the message. The complete, authoritative list of all official Peppol Document Type Identifiers (including those for SETU) is maintained on the [official Peppol Codelists page](https://docs.peppol.eu/edelivery/codelists/). +3. **Agree with Business Partners:** Coordinate with your business partners to confirm that you will be exchanging SETU messages using the Peppol network. + +## Support + +- For questions regarding the **content, structure, or business rules** of the SETU messages themselves, please consult the [SETU documentation](https://standard.setu.nl/docs/) or contact the [SETU Helpdesk](mailto:helpdesk@setu.nl). +- For questions concerning the **operation of the Peppol network**, connectivity, Access Points, SML/SMP lookups, or other Peppol-specific technical details, please refer to the documentation provided by the [Dutch Peppol Authority (NPa)](https://peppolautoriteit.nl/) or contact your chosen Access Point provider. diff --git a/app/docs/api/usage-notes/put-behavior.md b/app/docs/api/usage-notes/put-behavior.md new file mode 100644 index 0000000..9873fef --- /dev/null +++ b/app/docs/api/usage-notes/put-behavior.md @@ -0,0 +1,3 @@ +# PUT behavior + +A `PUT` request is not expected to include all optional elements. This means that if you omit an optional element from the payload, it will not be overwritten in the database. diff --git a/app/sidebars.js b/app/sidebars.js index 7927fea..4427687 100644 --- a/app/sidebars.js +++ b/app/sidebars.js @@ -135,8 +135,14 @@ module.exports = { 'api/usage-notes/identifiers', 'api/usage-notes/response-codes', 'api/usage-notes/attachment', + 'api/usage-notes/put-behavior', ], - } + }, + { + type: 'doc', + label: "Setu & Peppol", + id: 'api/Setu-Peppol', + }, ], }, ], diff --git a/app/static/img/peppol document types.png b/app/static/img/peppol document types.png new file mode 100644 index 0000000..655cdaf Binary files /dev/null and b/app/static/img/peppol document types.png differ