Validate VMC or CMC logo format (encoded)
3 minute read
https://www.digicert.com/services/v2/util/validate-vmc-encoded-logo
Note
This endpoint accepts compressed logo data, formatted as a base64-encoded string. To submit raw SVG data, use the Validate VMC or CMC logo format (SVG) endpoint.Request format
To submit a request to the Validate VMC or CMC logo format (encoded) endpoint:
Set the
Content-Typeheader toapplication/json.Format the data for your SVG logo as a compressed, base64-encoded string. For example, in a bash shell, run this command:
echo '<XML content for your SVG logo>' | gzip | base64In the JSON payload, submit the string containing the encoded logo data as the value of the
logoparameter.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 or CMC, 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-encoded-logo' \
--header 'Content-Type: application/json' \
--data-raw '{
"logo" : {{compressed_base64_encoded_svg_logo}}
}'import requests
import json
url = "https://www.digicert.com/services/v2/util/validate-vmc-encoded-logo"
payload = json.dumps({
"logo": {{compressed_base64_encoded_svg_logo}}
})
headers = {
'Content-Type': 'application/json'
}
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-encoded-logo"
method := "PUT"
payload := strings.NewReader(`{
"logo" : {{compressed_base64_encoded_svg_logo}}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
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-encoded-logo',
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"logo": {{compressed_base64_encoded_svg_logo}}
})
};
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"
}
]
}Request parameters
| Name | Req/Opt | Type | Description |
|---|---|---|---|
| logo | required | string | Compressed logo data, formatted as a base64-encoded string. |