diff --git a/README.md b/README.md index f92317b..23b4348 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The interface specifications are aligned with the DGC schema specification publi ## OpenAPI Specifications -- **Issuer API** ([Specification](vaccination-certify-api.yaml)) +- **Issuer API** ([Specification](dgc-certify-api.yaml)) Provides endpoints for the web frontend, vaccination center software, patient management software to issue [DGC](https://ec.europa.eu/info/live-work-travel-eu/coronavirus-response/safe-covid-19-vaccines-europeans/covid-19-digital-green-certificates) diff --git a/vaccination-certify-api.html b/dgc-certify-api.html similarity index 97% rename from vaccination-certify-api.html rename to dgc-certify-api.html index 137a11e..0f87123 100644 --- a/vaccination-certify-api.html +++ b/dgc-certify-api.html @@ -180,6 +180,47 @@ .jlDjZa .sc-fzpjYC,.jlDjZa .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC,.jlDjZa .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC{margin:1em;margin-right:0;background:#fafafa;}/*!sc*/ .jlDjZa .sc-fzpjYC .sc-fzpjYC,.jlDjZa .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC,.jlDjZa .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC .sc-fzpjYC{background:#ffffff;}/*!sc*/ data-styled.g24[id="sc-fznxsB"]{content:"jlDjZa,"}/*!sc*/ +.iuCQoO{background-color:#f5f5f5;border:2px solid #7C7C7C;border-radius:7;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font-size:1em;position:relative;}/*!sc*/ +.iuCQoO:hover{border:2px solid #6e6d6d;}/*!sc*/ +.iuCQoO:disabled{background-color:#ededed;cursor:unset;}/*!sc*/ +data-styled.g30[id="sc-fzoyTs"]{content:"iuCQoO,"}/*!sc*/ +.eEaIJt{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;box-sizing:border-box;cursor:inherit;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:32px;padding:0 11px;position:relative;width:100%;}/*!sc*/ +.eEaIJt input{background-color:inherit;border:none;font-size:inherit;height:30px;outline:none;width:100%;}/*!sc*/ +data-styled.g31[id="sc-fzoNJl"]{content:"eEaIJt,"}/*!sc*/ +.eXWOFC{bottom:0;left:11px;position:absolute;right:25px;top:0;}/*!sc*/ +data-styled.g32[id="sc-fzoXWK"]{content:"eXWOFC,"}/*!sc*/ +.gBfPiy{text-align:left;color:black;bottom:0;left:11px;line-height:30px;overflow:hidden;position:absolute;right:25px;text-overflow:ellipsis;top:0;white-space:nowrap;}/*!sc*/ +data-styled.g33[id="sc-fzpmMD"]{content:"gBfPiy,"}/*!sc*/ +.gQRRte{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;bottom:0;color:#808080;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:absolute;right:10px;top:0;}/*!sc*/ +data-styled.g35[id="sc-fznMAR"]{content:"gQRRte,"}/*!sc*/ +.kZnNiD{background-color:#ffffff;border:2px solid #6e6d6d;border-radius:4px;box-shadow:0px 4px 4px rgba(0,0,0,0.25);box-sizing:border-box;color:black;display:none;left:0;list-style-type:none;margin:0;max-height:150px;overflow-x:hidden;overflow-y:auto;padding:2px 0;position:absolute;top:100%;width:100%;z-index:9999;}/*!sc*/ +.kZnNiD .dropdown-selector-content--empty{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#808080;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:4px 0;}/*!sc*/ +.kZnNiD::-webkit-scrollbar{width:5px;}/*!sc*/ +.kZnNiD::-webkit-scrollbar-track{background:#ddd;}/*!sc*/ +.kZnNiD::-webkit-scrollbar-thumb{background:#666;}/*!sc*/ +data-styled.g36[id="sc-fznWOq"]{content:"kZnNiD,"}/*!sc*/ +.kwiRMm{background-color:#7C7C7C;border:none;color:#f5f5f5;cursor:pointer;font-size:0.95em;overflow:hidden;padding:5px 10px;text-overflow:ellipsis;white-space:nowrap;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ +.kwiRMm:hover{background-color:#7C7C7C;color:#f5f5f5;}/*!sc*/ +.kwiRMm .option-icon{padding-right:5px;}/*!sc*/ +.hQyXBS{background-color:#f5f5f5;border:none;color:inherit;cursor:pointer;font-size:0.95em;overflow:hidden;padding:5px 10px;text-overflow:ellipsis;white-space:nowrap;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ +.hQyXBS:hover{background-color:#CECECE;}/*!sc*/ +.hQyXBS .option-icon{padding-right:5px;}/*!sc*/ +data-styled.g40[id="sc-fzoxKX"]{content:"kwiRMm,hQyXBS,"}/*!sc*/ +.jGVUna.jGVUna{box-sizing:border-box;min-width:100px;outline:none;display:inline-block;border-radius:2px;border:1px solid rgba(38,50,56,0.5);vertical-align:bottom;padding:2px 0px 2px 6px;position:relative;width:auto;background:white;color:#263238;font-family:Montserrat,sans-serif;font-size:0.929em;line-height:1.5em;cursor:pointer;-webkit-transition:border 0.25s ease,color 0.25s ease,box-shadow 0.25s ease;transition:border 0.25s ease,color 0.25s ease,box-shadow 0.25s ease;}/*!sc*/ +.jGVUna.jGVUna:hover,.jGVUna.jGVUna:focus-within{border:1px solid #32329f;color:#32329f;box-shadow:0px 0px 0px 1px #32329f;}/*!sc*/ +.jGVUna.jGVUna .dropdown-selector{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;padding:0;height:auto;padding-right:20px;position:relative;margin-bottom:5px;}/*!sc*/ +.jGVUna.jGVUna .dropdown-selector-value{font-family:Montserrat,sans-serif;position:relative;font-size:0.929em;width:100%;line-height:1;vertical-align:middle;color:#263238;left:0;-webkit-transition:color 0.25s ease,text-shadow 0.25s ease;transition:color 0.25s ease,text-shadow 0.25s ease;}/*!sc*/ +.jGVUna.jGVUna .dropdown-arrow{position:absolute;right:3px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-color:#32329f transparent transparent;border-style:solid;border-width:0.35em 0.35em 0;width:0;}/*!sc*/ +.jGVUna.jGVUna .dropdown-arrow svg{display:none;}/*!sc*/ +.jGVUna.jGVUna .dropdown-selector-content{position:absolute;margin-top:2px;left:-2px;right:0;z-index:10;min-width:100px;background:white;border:1px solid rgba(38,50,56,0.2);box-shadow:0px 2px 4px 0px rgba(34,36,38,0.12),0px 2px 10px 0px rgba(34,36,38,0.08);max-height:220px;overflow:auto;}/*!sc*/ +.jGVUna.jGVUna .dropdown-option{font-size:0.9em;color:#263238;cursor:pointer;padding:0.4em;background-color:#ffffff;}/*!sc*/ +.jGVUna.jGVUna .dropdown-option[aria-selected='true']{background-color:rgba(0,0,0,0.05);}/*!sc*/ +.jGVUna.jGVUna .dropdown-option:hover{background-color:rgba(38,50,56,0.12);}/*!sc*/ +.jGVUna.jGVUna input{cursor:pointer;height:1px;background-color:transparent;}/*!sc*/ +.jGVUna.jGVUna{margin-left:10px;text-transform:none;font-size:0.969em;font-size:1em;border:none;padding:0 1.2em 0 0;background:transparent;}/*!sc*/ +.jGVUna.jGVUna:hover,.jGVUna.jGVUna:focus-within{border:none;box-shadow:none;}/*!sc*/ +.jGVUna.jGVUna:hover .dropdown-selector-value,.jGVUna.jGVUna:focus-within .dropdown-selector-value{color:#32329f;text-shadow:0px 0px 0px #32329f;}/*!sc*/ +data-styled.g42[id="sc-fzoYkl"]{content:"jGVUna,"}/*!sc*/ .ezqAQI{margin-left:10px;text-transform:none;font-size:0.929em;color:black;}/*!sc*/ data-styled.g43[id="sc-fzpkJw"]{content:"ezqAQI,"}/*!sc*/ .kuWevu > ul{list-style:none;padding:0;margin:0;margin:0 -5px;}/*!sc*/ @@ -384,6 +425,25 @@ data-styled.g62[id="sc-fzoVTD"]{content:"hYwnSl,"}/*!sc*/ .dBHtDj{position:relative;}/*!sc*/ data-styled.g63[id="sc-fzpisO"]{content:"dBHtDj,"}/*!sc*/ +.jpuTDy.jpuTDy{box-sizing:border-box;min-width:100px;outline:none;display:inline-block;border-radius:2px;border:1px solid rgba(38,50,56,0.5);vertical-align:bottom;padding:2px 0px 2px 6px;position:relative;width:auto;background:white;color:#263238;font-family:Montserrat,sans-serif;font-size:0.929em;line-height:1.5em;cursor:pointer;-webkit-transition:border 0.25s ease,color 0.25s ease,box-shadow 0.25s ease;transition:border 0.25s ease,color 0.25s ease,box-shadow 0.25s ease;}/*!sc*/ +.jpuTDy.jpuTDy:hover,.jpuTDy.jpuTDy:focus-within{border:1px solid #32329f;color:#32329f;box-shadow:0px 0px 0px 1px #32329f;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-selector{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;padding:0;height:auto;padding-right:20px;position:relative;margin-bottom:5px;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-selector-value{font-family:Montserrat,sans-serif;position:relative;font-size:0.929em;width:100%;line-height:1;vertical-align:middle;color:#263238;left:0;-webkit-transition:color 0.25s ease,text-shadow 0.25s ease;transition:color 0.25s ease,text-shadow 0.25s ease;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-arrow{position:absolute;right:3px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-color:#32329f transparent transparent;border-style:solid;border-width:0.35em 0.35em 0;width:0;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-arrow svg{display:none;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-selector-content{position:absolute;margin-top:2px;left:-2px;right:0;z-index:10;min-width:100px;background:white;border:1px solid rgba(38,50,56,0.2);box-shadow:0px 2px 4px 0px rgba(34,36,38,0.12),0px 2px 10px 0px rgba(34,36,38,0.08);max-height:220px;overflow:auto;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-option{font-size:0.9em;color:#263238;cursor:pointer;padding:0.4em;background-color:#ffffff;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-option[aria-selected='true']{background-color:rgba(0,0,0,0.05);}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-option:hover{background-color:rgba(38,50,56,0.12);}/*!sc*/ +.jpuTDy.jpuTDy input{cursor:pointer;height:1px;background-color:transparent;}/*!sc*/ +.jpuTDy.jpuTDy{margin-left:10px;text-transform:none;font-size:0.929em;margin:0 0 10px 0;display:block;background-color:rgba(38,50,56,0.4);font-size:1em;border:none;padding:0.9em 1.6em 0.9em 0.9em;box-shadow:none;}/*!sc*/ +.jpuTDy.jpuTDy:hover,.jpuTDy.jpuTDy:focus-within{border:none;box-shadow:none;}/*!sc*/ +.jpuTDy.jpuTDy:focus-within{background-color:rgba(38,50,56,0.7);}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-arrow{border-top-color:#ffffff;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-selector-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:#ffffff;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-selector-content{margin:0;margin-top:2px;}/*!sc*/ +.jpuTDy.jpuTDy .dropdown-selector-content .dropdown-option{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}/*!sc*/ +data-styled.g64[id="sc-fznyYp"]{content:"jpuTDy,"}/*!sc*/ .iZtsQe{margin-top:15px;}/*!sc*/ data-styled.g66[id="sc-fznXWL"]{content:"iZtsQe,"}/*!sc*/ .dUqafC{border-left:1px solid #7c7cbb;box-sizing:border-box;position:relative;padding:10px 10px 10px 0;vertical-align:top;line-height:20px;white-space:nowrap;font-size:13px;font-family:Courier,monospace;}/*!sc*/ @@ -579,7 +639,7 @@ 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864 -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688, -104.0616 -231.873,-231.248 z - " fill="currentColor">
Download OpenAPI specification:Download
The issuer service API generates signed + " fill="currentColor">
Download OpenAPI specification:Download
The issuer service API generates signed Digital Green Certificate (DGC) conforming certificates.
Copyright (C) 2021 IBM Deutschland GmbH
@@ -589,7 +649,7 @@
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
+https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
@@ -597,15 +657,15 @@
See the License for the specific language governing permissions and
limitations under the License.
Issue a vaccination certificate based on the provided input according to spec 1.0.0 of the +
Issue a health certificate based on the provided input according to spec 1.0.0 of the Digital Green Certificate (DGC).
Authentication: clients connecting via Internet (not SNK/TI)
need an X.509 client certificate and must provide a list of authorized vaccination center id
's.
Applications: vaccination center software, patient information systems, integrators
-Vaccination information. The value-sets are defined in the EU eHealthNetwork: Value Sets for Digital Green Certificates. version 1.0.
- required | object (Person name) Name of the vaccinated person. +Authorizations:Request Body schema: application/json application/json application/vnd.dgc.v1+json Digital Green Certificate request information. The value-sets are defined in the EU eHealthNetwork: Value Sets for Digital Green Certificates. version 1.0. +
Responseshttps://api.certify.demo.ubirch.com/api/certify/v2/issue Endpoint for vaccination centers only - PRODUCTION api server https://api.certify.ubirch.com/api/certify/v2/issue Endpoint for medical practitioners with TI access only - STAGING api server https://api.ru.impfnachweis.info/api/certify/v2/issue Endpoint for medical practitioners with TI access only - PRODUCTION api server -https://api.impfnachweis.info/api/certify/v2/issue Request samples
Content type application/json { Request samples
Content type application/json application/json application/vnd.dgc.v1+json { Sign a CBOR Web Token hash.DescriptionVerifies and signs the hash of a CBOR Web Token (CWT). This is the actual signature operation of the ECDSA algorithm applied to the pre-hashed data of the CWT. It returns the skeleton of the signed CWT which needs to be filled with the actual payload that was used in the process of creating the signature hash. This endpoint is used for a privacy friendly way to remotely sign certificates. -Applications: vaccination web frontend -Authorizations:Request Body schema: text/plainBase64 encoded SHA256 message digest of the CBOR Web Token. +Applications: secure backend integrators, vaccination web frontend +Authorizations:Request Body schema: text/plainBase64 encoded SHA256 message digest of the CBOR Web Token prior to the application +of the signature algorithm. string <base64> Responseshttps://api.ru.impfnachweis.info/api/certify/v2/issue/hash Endpoint for medical practitioners with TI access only - PRODUCTION api server https://api.impfnachweis.info/api/certify/v2/issue/hash Request samples
Content type text/plain TvQb78AX/5r+5ZkVYYeUW0Rn/4FB8ICt6sSdrwOq0EI= Response samples
Content type application/cbor <Signed Incomplete CBOR Web Token> |