From 421a47580ea60ead5e4a146c8b5c21b407b25e95 Mon Sep 17 00:00:00 2001 From: Hein-k <73823475+Hein-k@users.noreply.github.com> Date: Fri, 2 May 2025 13:52:50 +0200 Subject: [PATCH 01/11] peppol image add --- app/static/img/peppol document types.png | Bin 0 -> 49636 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/static/img/peppol document types.png diff --git a/app/static/img/peppol document types.png b/app/static/img/peppol document types.png new file mode 100644 index 0000000000000000000000000000000000000000..655cdafc5a6b6eb848e359cef5e0d07dfc6cb458 GIT binary patch literal 49636 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 literal 0 HcmV?d00001 From 9dab84e9b14bca72d5ea3b1a8fa9225d46ffcfbf Mon Sep 17 00:00:00 2001 From: Hein-k <73823475+Hein-k@users.noreply.github.com> Date: Fri, 2 May 2025 13:58:39 +0200 Subject: [PATCH 02/11] Create Setu-Peppol.md --- app/docs/notes/Setu-Peppol.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 app/docs/notes/Setu-Peppol.md diff --git a/app/docs/notes/Setu-Peppol.md b/app/docs/notes/Setu-Peppol.md new file mode 100644 index 0000000..8c90459 --- /dev/null +++ b/app/docs/notes/Setu-Peppol.md @@ -0,0 +1,26 @@ + +# Sending SETU Messages via PEPPOL + +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 now also 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 (NPa), standard SETU XML messages can now be sent using the PEPPOL network infrastructure. + +To enable this, specific **Document Type Identifiers** have been officially 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 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/). Refer to the image example above for the SETU-specific identifiers. +3. **Agree with Trading 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. From bd0f187182c578ddfee91350b80c7fb983f4adac Mon Sep 17 00:00:00 2001 From: Hein-k <73823475+Hein-k@users.noreply.github.com> Date: Fri, 2 May 2025 14:03:22 +0200 Subject: [PATCH 03/11] Update sidebars.js for peppol changes --- app/sidebars.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/sidebars.js b/app/sidebars.js index ad16e6b..6c2f247 100644 --- a/app/sidebars.js +++ b/app/sidebars.js @@ -110,6 +110,16 @@ module.exports = { } ] }, + { + type: "category", + label: "Notes", + collapsed: true, + items: [ + { + type: 'doc', + label: "Setu & Peppol", + id: 'notes/Setu-Peppol', + }, { type: "category", label: "API documentation", From 9df4f2a276e1a5a0eb7f34f69c47d114a7d745c7 Mon Sep 17 00:00:00 2001 From: Jelte-bootsma Date: Fri, 2 May 2025 14:05:36 +0200 Subject: [PATCH 04/11] Syntax fix --- app/sidebars.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/sidebars.js b/app/sidebars.js index 6c2f247..02be6a7 100644 --- a/app/sidebars.js +++ b/app/sidebars.js @@ -120,6 +120,8 @@ module.exports = { label: "Setu & Peppol", id: 'notes/Setu-Peppol', }, + ], + }, { type: "category", label: "API documentation", From 889471de593e613ec2559e53315a0000b1027035 Mon Sep 17 00:00:00 2001 From: Jelte-bootsma Date: Fri, 2 May 2025 14:09:52 +0200 Subject: [PATCH 05/11] Small changes --- app/docs/notes/Setu-Peppol.md | 3 +++ app/sidebars.js | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/docs/notes/Setu-Peppol.md b/app/docs/notes/Setu-Peppol.md index 8c90459..4cb904f 100644 --- a/app/docs/notes/Setu-Peppol.md +++ b/app/docs/notes/Setu-Peppol.md @@ -8,6 +8,9 @@ SETU standards define the _content_ and structure of messages for the temporar Through agreements between SETU and the Dutch Peppol Authority (NPa), standard SETU XML messages can now be sent using the PEPPOL network infrastructure. To enable this, specific **Document Type Identifiers** have been officially 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 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). diff --git a/app/sidebars.js b/app/sidebars.js index 02be6a7..46d6ef1 100644 --- a/app/sidebars.js +++ b/app/sidebars.js @@ -120,7 +120,7 @@ module.exports = { label: "Setu & Peppol", id: 'notes/Setu-Peppol', }, - ], + ] }, { type: "category", From 42ca38a26a6d7f2e53863104dc813a3eb5c08eb3 Mon Sep 17 00:00:00 2001 From: heink Date: Fri, 16 May 2025 11:42:33 +0200 Subject: [PATCH 06/11] General small changes to peppol doc suggested by Michiel. --- app/docs/notes/Setu-Peppol.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/docs/notes/Setu-Peppol.md b/app/docs/notes/Setu-Peppol.md index 4cb904f..4d56a8b 100644 --- a/app/docs/notes/Setu-Peppol.md +++ b/app/docs/notes/Setu-Peppol.md @@ -1,29 +1,29 @@ -# Sending SETU Messages via PEPPOL +# 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 now also 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 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 +## SETU and Peppol -Through agreements between SETU and the Dutch Peppol Authority (NPa), standard SETU XML messages can now be sent using the PEPPOL network infrastructure. +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** have been officially 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 page mentioned below.** +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). +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 +## How to Use SETU via Peppol -To send or receive SETU messages via the PEPPOL network: +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/). Refer to the image example above for the SETU-specific identifiers. -3. **Agree with Trading Partners:** Coordinate with your business partners to confirm that you will be exchanging SETU messages using 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. +- 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. From 249917b1a4e2730f621ce4b34ca1b5786a5b450c Mon Sep 17 00:00:00 2001 From: heink Date: Fri, 16 May 2025 11:55:27 +0200 Subject: [PATCH 07/11] Moved Peppol documentation --- app/docs/api/Setu-Peppol.md | 29 +++++++++++++++++++++++++++++ app/sidebars.js | 19 ++++++------------- 2 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 app/docs/api/Setu-Peppol.md 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/sidebars.js b/app/sidebars.js index 46d6ef1..bbc7884 100644 --- a/app/sidebars.js +++ b/app/sidebars.js @@ -110,18 +110,6 @@ module.exports = { } ] }, - { - type: "category", - label: "Notes", - collapsed: true, - items: [ - { - type: 'doc', - label: "Setu & Peppol", - id: 'notes/Setu-Peppol', - }, - ] - }, { type: "category", label: "API documentation", @@ -153,7 +141,12 @@ module.exports = { 'api/usage-notes/response-codes', 'api/usage-notes/attachment', ], - } + }, + { + type: 'doc', + label: "Setu & Peppol", + id: 'api/Setu-Peppol', + }, ], }, ], From 3ea5efc8971d6b11268229d362cf39bf0c8142de Mon Sep 17 00:00:00 2001 From: heink Date: Fri, 16 May 2025 12:06:30 +0200 Subject: [PATCH 08/11] Updated Readme API documentation. --- app/docs/api/README.md | 14 ++++---------- app/docs/notes/Setu-Peppol.md | 29 ----------------------------- 2 files changed, 4 insertions(+), 39 deletions(-) delete mode 100644 app/docs/notes/Setu-Peppol.md 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/notes/Setu-Peppol.md b/app/docs/notes/Setu-Peppol.md deleted file mode 100644 index 4d56a8b..0000000 --- a/app/docs/notes/Setu-Peppol.md +++ /dev/null @@ -1,29 +0,0 @@ - -# 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. From cac784d3dce0d0ef567ce19cb77411a80e0781ef Mon Sep 17 00:00:00 2001 From: heink Date: Fri, 16 May 2025 12:07:19 +0200 Subject: [PATCH 09/11] Aded section on the note: 'put' to usage notes in API. --- app/docs/api/usage-notes/put-behavior.md | 3 +++ app/sidebars.js | 1 + 2 files changed, 4 insertions(+) create mode 100644 app/docs/api/usage-notes/put-behavior.md 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 bbc7884..f48dbfc 100644 --- a/app/sidebars.js +++ b/app/sidebars.js @@ -140,6 +140,7 @@ module.exports = { 'api/usage-notes/identifiers', 'api/usage-notes/response-codes', 'api/usage-notes/attachment', + 'api/usage-notes/put-behavior', ], }, { From 8afe369f58f12f071151453937f3084b2f2b389c Mon Sep 17 00:00:00 2001 From: heink Date: Fri, 16 May 2025 12:52:55 +0200 Subject: [PATCH 10/11] Changed url that led to build error. --- app/api/gelijkwaardige-beloning.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/gelijkwaardige-beloning.yml b/app/api/gelijkwaardige-beloning.yml index bd2f0db..2ef99dc 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://github.com/setu-standards/xml-specifications/raw/refs/heads/main/setu-inlenersbeloning/v1.0/inlenersbeloning.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: From 0ccc88fdab603620f26ed7e1d31d0a96b73fe214 Mon Sep 17 00:00:00 2001 From: Hein-k <73823475+Hein-k@users.noreply.github.com> Date: Tue, 3 Jun 2025 17:01:24 +0200 Subject: [PATCH 11/11] Update gelijkwaardige-beloning.yml --- app/api/gelijkwaardige-beloning.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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'