Create a refresh request
POST /v1/subjects/:subject_type/:subject_id/refresh-requests
Creates a new refresh request for the given subject. The server derives origin_type automatically: if your tenant owns the subject the value is "owner", otherwise it is "counterparty". You cannot set origin_type yourself — passing it returns 400 Bad Request.
The calling principal must be an active member of requesting_tenant_id with at least the tenant_reader role, and that tenant must either own the subject or hold an active grant for it.
Path parameters
Must be
entity or individual.The identifier of the subject.
Body parameters
The ID of the tenant on whose behalf the request is being made.
An optional machine-readable code describing why the refresh is needed (e.g.
"annual_review", "aml_alert", "onboarding").An optional human-readable message to accompany the request.
An optional list of JSON Pointers
identifying the specific attributes you need updated (e.g.
["/attributes/registered_address", "/attributes/directors"]). Duplicates
are deduplicated. Each path must start with /.An optional deadline after which the request is no longer relevant. The
owner’s system may use this to prioritise urgent requests.
Response
201 Created
Get a refresh request
GET /v1/subjects/:subject_type/:subject_id/refresh-requests/:refresh_request_id
Returns a single refresh request by ID.
Access requires one of: you are a member of the subject’s owning tenant, or you are a member of the requesting_tenant_id tenant and that tenant holds an active grant for the subject.
Path parameters
Must be
entity or individual.The identifier of the subject.
The ID of the refresh request.
Response
200 OK — { refresh_request: RefreshRequestRow }
List refresh requests
GET /v1/subjects/:subject_type/:subject_id/refresh-requests
Returns a paginated list of refresh requests for a subject.
- Subject owners may list all requests or filter by
requesting_tenant_id. - Grantees must supply their own
requesting_tenant_id— they can only see their own requests.
Path parameters
Must be
entity or individual.The identifier of the subject.
Query parameters
Filter results to only requests from this tenant. Required if the calling
principal is not a member of the subject’s owning tenant.
Number of results per page. Between
1 and 200. Defaults to 50.Opaque pagination cursor from the previous response’s
page.next_cursor.Response
200 OK
Fulfill a refresh request
POST /v1/subjects/:subject_type/:subject_id/refresh-requests/:refresh_request_id/fulfill
Links a published snapshot to a pending refresh request, transitioning it to "fulfilled". You should call this after you have applied an entity state update that addresses the request (see State Updates).
Only members of the subject’s owning tenant may call this endpoint.
Path parameters
Must be
entity or individual.The identifier of the subject.
The ID of the refresh request to fulfill.
Body parameters
The
snapshot_id of the new snapshot that fulfills this request. Must
belong to the same subject.Response
200 OK — the updated refresh request with status: "fulfilled", resolved_at, resolved_snapshot_id, and resolved_snapshot_version populated.
Error responses
| Status | Code | Meaning |
|---|---|---|
403 | forbidden | Only the subject owner can fulfill a refresh request. |
404 | not_found | No refresh request exists with this ID. |
409 | conflict | The request is already fulfilled, the snapshot doesn’t match the subject, or the snapshot was previously linked to a different snapshot ID. |