Validate VMC or CMC logo format (SVG)
3 minute read
PUT
Use this endpoint to check if the format of an SVG file is compatible with the requirements for Verified Mark Certificates (VMC) or a Common Mark Certificate (CMC).https://www.digicert.com/services/v2/util/validate-vmc-logo
Note
This endpoint accepts raw SVG data. To submit compressed logo data formatted as a base64-encoded string, use the Validate VMC or CMC logo format (encoded) endpoint.Request format
To submit a request to the Validate VMC or CMC logo format (SVG) endpoint:
- Set the
Content-Typeheader.- If the image data includes an XML tag (for example,
<?xmlversion="1.0"encoding="UTF-8"?>), useimage/svg+xml. - If the image data does not include an XML tag, use
image/svg.
- If the image data includes an XML tag (for example,
- Submit the raw SVG data for the image as the payload of the request.
- Omit the custom header
X-DC-DEVKEY. This operation does not require authentication with an API key.
Response format
If the logo format meets VMC or CMC requirements, the endpoint returns a status of 204 No Content.
If there is a formatting issue with the logo, the endpoint returns an error message with a status of 400 Bad Request. The error message provides:
- A brief description of the formatting issue.
- The line and column number where you can find the problem when you open the file in a text editor.
To learn more about formatting a logo for VMC, visit Getting Ready for BIMI: Prep Your Logo.
To resolve issues with the SVG format of your logo:
- Open the SVG file in a text editor.
- Update the content at the locations displayed in the error messages.
- Save the file.
- Submit another request with your updated SVG data.
Example requests and responses
curl --request PUT 'https://www.digicert.com/services/v2/util/validate-vmc-logo' \
--header 'Content-Type: image/svg+xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 269.9 76.2" version="1.2" baseProfile="tiny-ps">
<title>Example Logo</title>
<!-- Logo Data -->
</svg>'import requests
url = "https://www.digicert.com/services/v2/util/validate-vmc-logo"
payload = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 269.9 76.2\" version=\"1.2\" baseProfile=\"tiny-ps\">\n <title>Example Logo</title>\n <!-- Logo Data -->\n</svg>"
headers = {
'Content-Type': 'image/svg+xml'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://www.digicert.com/services/v2/util/validate-vmc-logo"
method := "PUT"
payload := strings.NewReader(`<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 269.9 76.2" version="1.2" baseProfile="tiny-ps">
<title>Example Logo</title>
<!-- Logo Data -->
</svg>`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "image/svg+xml")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://www.digicert.com/services/v2/util/validate-vmc-logo',
'headers': {
'Content-Type': 'image/svg+xml'
},
body: '<?xml version="1.0" encoding="UTF-8"?>\n<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 269.9 76.2" version="1.2" baseProfile="tiny-ps">\n <title>Example Logo</title>\n <!-- Logo Data -->\n</svg>'
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});// empty{
"errors": [
{
"code": "invalid_vmc_logo",
"message": "attribute \"overflow\" not allowed here at line 4:65"
}
]
}Was this page helpful?
Provide feedback