API Reference

Ledger API

Immutable ledger operations for records and certificates

Endpoints in this group

GET/v1/ledger/records

List ledger records with pagination and filters

Parameters

ParameterInTypeReqDescription
pagequeryintegerNo
pageSizequeryintegerNo
eventTypequerystringNo
startDatequerystringNo
endDatequerystringNo
actorIdquerystringNo
documentHashquerystringNo
documentReferencequerystringNo

Responses

200Paginated list of ledger records401Unauthorized
FieldTypeReqDescription
dataRecord[]No
totalintegerNo
pageintegerNo
pageSizeintegerNo

Example request

cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/records" \
  -H "X-Bedrock-Key: bk_live_your_api_key"
GET/v1/ledger/records/{id}

Get a single ledger record

Parameters

ParameterInTypeReqDescription
idpathstringYesRecord ID

Responses

200Ledger record details401Unauthorized404Record not found
FieldTypeReqDescription
idstringNo
firmIdstringNo
sequenceNumberintegerNo
eventTypestringNo
actorIdstringNo
actorFcaRefstring | nullNo
actorNamestringNo
documentHashstringNo
documentMetadataobjectNo
previousHashstring | nullNo
recordHashstringNo
chainHashstringNo
signaturestringNo
publicKeystringNo
timestampstring (date-time)No
reviewJobIdstring | nullNo

Example request

cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/records/<id>" \
  -H "X-Bedrock-Key: bk_live_your_api_key"
GET/v1/ledger/records/{id}/certificate

Get presigned URL for certificate PDF

Parameters

ParameterInTypeReqDescription
idpathstringYesRecord ID

Responses

200Presigned URL for certificate PDF401Unauthorized404Certificate not found
FieldTypeReqDescription
urlstring (uri)No

Example request

cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/records/<id>/certificate" \
  -H "X-Bedrock-Key: bk_live_your_api_key"
POST/v1/ledger/records/{id}/certificate

Issue a certificate on demand for a ledger record

On-demand certificate issuance for any ledger record outside the auto-issue allowlist. Idempotent: returns the existing certificate id if one was already issued for the record.

Parameters

ParameterInTypeReqDescription
idpathstringYesRecord ID

Responses

200Certificate already existed or was enqueued for generation401Unauthorized404Ledger record not found
FieldTypeReqDescription
certificateIdstring | nullNoExisting certificate id, or null if cert-gen was enqueued
statusstringNo
existingenqueued

Example request

cURL
curl -X POST "https://api.bedrockcompliance.co.uk/v1/ledger/records/<id>/certificate" \
  -H "X-Bedrock-Key: bk_live_your_api_key"
GET/v1/ledger/certificates

List all certificates for the authenticated firm

Responses

200List of certificates401Unauthorized

Example request

cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/certificates" \
  -H "X-Bedrock-Key: bk_live_your_api_key"
GET/v1/ledger/certificates/{id}

Get certificate metadata by id

Item pair of `listCertificates` — returns the full Certificate envelope. For the PDF download, use `GET /v1/ledger/records/{id}/certificate` instead.

Parameters

ParameterInTypeReqDescription
idpathstringYesCertificate ID

Responses

200Certificate envelope401Unauthorized404Certificate not found
FieldTypeReqDescription
idstringNo
ledgerRecordIdstringNo
firmIdstringNo
firmNamestringNo
firmFrnNumberstringNo
issuedAtstring (date-time)No
verificationUrlstring (uri)No
pdfUrlstring (uri)No
pdfStorageKeystringNo
metadataobjectNoEvent-specific snapshot — shape depends on the linked record's eventType. Carries `eventLabel`, optional `statusPill`, and `sections` (heading + labelled fields).

Example request

cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/certificates/<id>" \
  -H "X-Bedrock-Key: bk_live_your_api_key"
GET/v1/ledger/chains/verify

Verify chain integrity for the authenticated firm

Responses

200Chain verification result401Unauthorized
FieldTypeReqDescription
validbooleanNo
recordCountintegerNo
errorsobject[]No

Example request

cURL
curl -X GET "https://api.bedrockcompliance.co.uk/v1/ledger/chains/verify" \
  -H "X-Bedrock-Key: bk_live_your_api_key"