curl --request GET \
--url http://localhost:4005/v1/regulatory/reports/{reportId}/provenance \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:4005/v1/regulatory/reports/{reportId}/provenance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:4005/v1/regulatory/reports/{reportId}/provenance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://localhost:4005/v1/regulatory/reports/{reportId}/provenance"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"catalog": {
"bindingVersion": 3,
"documentId": "br.bcb.cadoc-4010",
"documentVersion": "1.0.0",
"subscriptionId": "<string>",
"institution": {
"cnpj": "12ABC34501DE35",
"id": "00000000-0000-0000-0000-000000000000",
"name": "Banco Exemplo S.A.",
"scope": {}
}
},
"generatedAt": "2023-11-07T05:31:56Z",
"artifactChecksum": "e3b0c44298fc1c149afbf4c8996fb924...",
"artifactSizeBytes": 20480,
"parameters": {
"dataBase": "2026-03"
},
"template": {
"category": "cadoc4010",
"revision": 4,
"revisionChecksum": "9f2c...",
"templateId": "7c1e2f40-77d1-4a8a-9d0f-6b0e2c4a1111"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Read what a report was made of, frozen
Answers the report’s provenance: which document at which pinned version, under which subscription, with which binding version and generation parameters, and the SHA-256 of the artifact that was stored. It is what answers, months later, why the filing says what it says — and whether the file in hand is the file that was approved. A custom report has none and answers 404.
curl --request GET \
--url http://localhost:4005/v1/regulatory/reports/{reportId}/provenance \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:4005/v1/regulatory/reports/{reportId}/provenance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:4005/v1/regulatory/reports/{reportId}/provenance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://localhost:4005/v1/regulatory/reports/{reportId}/provenance"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"catalog": {
"bindingVersion": 3,
"documentId": "br.bcb.cadoc-4010",
"documentVersion": "1.0.0",
"subscriptionId": "<string>",
"institution": {
"cnpj": "12ABC34501DE35",
"id": "00000000-0000-0000-0000-000000000000",
"name": "Banco Exemplo S.A.",
"scope": {}
}
},
"generatedAt": "2023-11-07T05:31:56Z",
"artifactChecksum": "e3b0c44298fc1c149afbf4c8996fb924...",
"artifactSizeBytes": 20480,
"parameters": {
"dataBase": "2026-03"
},
"template": {
"category": "cadoc4010",
"revision": 4,
"revisionChecksum": "9f2c...",
"templateId": "7c1e2f40-77d1-4a8a-9d0f-6b0e2c4a1111"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "<string>",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "body.templateId",
"message": "expected string to match 'uuid' format",
"value": "not-a-uuid"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Authorizations
JWT bearer token issued by the identity provider.
Path Parameters
Report identifier.
Response
OK
- Option 1
- Option 2
Everything a report was made of, frozen at generation. Exactly one origin is present: catalog for a filing produced from a curated regulatory document, template for one produced from a template whose category makes it regulatory. A record carrying both, or neither, does not exist — it is refused before it is stored.
Show child attributes
Show child attributes
SHA-256 of the artifact, hex.
"e3b0c44298fc1c149afbf4c8996fb924..."
Size of the stored artifact in bytes.
20480
Generation parameters as supplied.
Show child attributes
Show child attributes
{ "dataBase": "2026-03" }
Show child attributes
Show child attributes
Was this page helpful?

