{
  "openapi": "3.0.0",
  "info": {
    "version": "2026-04-02-1",
    "title": "Renvooiservice",
    "description": "Functie:\n* Maken RegelingMutatie xml uitgaande van twee RegelingVersie xml bestanden. \n\nAuthorisatie:\n* toegang tot ETO en PROD op basis van API-KEYS.\n\nPDF met functionele documentatie is beschikbaar onder endpoint '/documentatie'.\n",
    "contact": {
      "name": "Servicedesk renvooiservice",
      "email": "renvooiservice@koop.overheid.nl"
    }
  },
  "servers": [
    {"url": "https://renvooiservice-eto.overheid.nl"}
  ],
  "paths": {
    "/regelingmutatie-maak": {
      "post": {
        "description": "* Maken RegelingMutatie xml uitgaande van twee RegelingVersie xml bestanden\n* De RegelingVersie bestanden moeten voldoen aan het [lvbba schema 1.2.0](https://koop.gitlab.io/lvbb/bronhouderkoppelvlak/lvbba_xsd_Main_schema_lvbba_xsd.html).\n* De gegenereerde RegelingMutatie voldoet aan het [STOP schema 1.3.0](https://koop.gitlab.io/STOP/standaard/1.3.0/tekst_xsd_Element_tekst_RegelingMutatie.html).\nDe Renvooi Service API controleert de aangeleverde bestanden (de was- en de wordtVersie) en het resultaatbestand (RegelingMutatie bestand) tegen resp:\n* de relevante onderdelen van het lvbb-stop-aanlevering schema en de bijbehorende schematronregels (was- en wordtVersie: RegelingVersie);\n* het imop-tekst schema, de bijbehorende schematronregels en de tekstmutatie schematronregels (RegelingMutatie).\n* de Renvooi Service geeft alleen de errors uit de schematrons terug (sluit aan bij de LVBB).\nDaarnaast kent de Renvooi Service een aantal (fout)meldingen die specifiek voor de Renvooi Service zijn (bv. \"De data:FRBRWork dient aanwezig te zijn en in beide versies identiek\"). Voor de manier waarop de foutmeldingen door de Renvooi Service aan het aanroepende systeem worden terug gegeven, is aangesloten bij de wijze waarop dit in de LVBB plaats vindt.\n",
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "scenario": {
                    "description": "scenario waarmee renvooi bepaald moet worden (vooruitlopend op toekomstige nieuwe renvooibepalingen).",
                    "type": "string",
                    "enum": ["renvooi"]
                  },
                  "bhkv-schema-versie": {
                    "description": "BHKV versie waar Renvooiservice gebruik van moet maken (vooruitlopend op concurrent versioning).",
                    "type": "string",
                    "enum": ["1.2.0"]
                  },
                  "return": {
                    "description": "Reponse xml of zip (in zip kunnen zowel de RegelingMutatie als de Validiatiemeldingen verpakt zitten).",
                    "type": "string",
                    "enum": [
                      "xml",
                      "zip"
                    ],
                    "default": "xml"
                  },
                  "validate": {
                    "description": "Dient er gevalideerd te worden tegen de Schema(tron)'s.",
                    "type": "boolean",
                    "default": true
                  },
                  "docA": {
                    "description": "wasVersie (RegelingVersie xml-bestand)",
                    "type": "string",
                    "format": "binary"
                  },
                  "docB": {
                    "description": "wordtversie (RegelingVersie xml-bestand)",
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "RegelingMutatie en/of Validatiemeldingen in xml of zip",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "403": {"$ref": "#/components/responses/unauthorized"},
          "422": {
            "description": "Lijst met (fout)meldingen in namespace [https://standaarden.overheid.nl/renvooi/](https://standaarden.overheid.nl/renvooi/) \n",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {"$ref": "#/components/schemas/melding"},
                  "xml": {"name": "meldingen"}
                }
              }
            }
          },
          "500": {
            "description": "internal server error",
            "content": {
              "text/html": {}
            }
          }
        }
      }
    },
    "/documentatie": {
      "get": {
        "description": "PDF met functionele documentatie en overzicht foutcodes",
        "responses": {
          "200": {
            "description": "PDF met functionele documentatie en overzicht foutcodes",
            "content": {
              "application/pdf": {}
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "description": "Deze open-api in json formaat",
        "responses": {
          "200": {
            "description": "Deze open-api in json formaat",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    }
  },
  "components": {
    "responses": {
      "unauthorized": {
        "description": "Niet gemachtigd",
        "content": {
          "application/json": {
            "schema": {"$ref": "#/components/schemas/errors"}
          }
        }
      }
    },
    "schemas": {
      "melding": {
        "description": "Een melding van de Renvooiservice is op dezelfde wijze opgebouwd als een LVBB melding (namespace [http://www.overheid.nl/2017/stop](http://www.overheid.nl/2017/stop))\n",
        "type": "object",
        "properties": {
          "code": {
            "description": "unieke code: zowel de STOPcodes uit de schematron als specifieke Renvooi Service codes \n * RS0000: beide versies zijn inhoudelijk hetzelfde.\n * RS0001: beide versies dienen als root-element een RegelingVersie te hebben.\n * RS0002: de data:FRBRExpression dient in beide versies aanwezig te zijn en te verschillen (vereist om de RegelingMutatie van valide 'was' en 'wordt' attributen te voorzien).\n * RS0003: de data:FRBRWork dient aanwezig te zijn en in beide versies identiek. \n * RS0004: er zijn dubbele wId's gevonden, dit is niet toegestaan ([STOP standaard eId en wId](https://koop.gitlab.io/STOP/standaard/1.3.0/eid_wid.html). \n * RS0005: fouten in Elementen met vaste eId en wId. (zie ook: [https://koop.gitlab.io/STOP/standaard/1.3.0/eid_wid.html](https://koop.gitlab.io/STOP/standaard/1.3.0/eid_wid.html)).\n * RS0006: de @was-versie kent geen content en/of de @wordt-versie kent geen content.\n * RS0007: Het content-type van de @was/@wordt-versie is geen xml.\n * RS9999: VALIDATIEFOUT [schemanaam]: gevolgd door validatiemelding (een aangeleverd bestand valideert niet tegen het lvbb-stop-aanlevering schema of de gegenereerde RegelingMutatie valideert niet tegen het imop-tekst schema.)\n",
            "type": "string"
          },
          "ernst": {
            "description": "waarde is \"fout\"of \"informatie\"",
            "type": "string"
          },
          "soort": {
            "description": "vaste waarde: inhoudelijk\n",
            "type": "string"
          },
          "categorie": {
            "description": "AKNId van het aangeleverde bestand of \"RegelingMutatie\" (optioneel)\n",
            "type": "string"
          },
          "beschrijving": {
            "description": "opgeschoonde validatiefout melding/ schematronmelding/ Renvooi Service melding\n",
            "type": "string"
          },
          "metadata": {
            "description": "(XPATH naar) de lokatie van de schematronfout (optioneel)\n",
            "type": "string"
          }
        }
      },
      "errors": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "properties": {
                "code": {"type": "string"},
                "omschrijving": {"type": "string"},
                "link-naar-validatie-fouten": {
                  "type": "string",
                  "description": "Link naar xml-validatiefouten-bestand."
                }
              }
            }
          }
        }
      }
    }
  }
}