curl -s \
"https://engine.example.com/v1/distributions/d-27c46953-a001/export" \
-H "Authorization: Bearer $TOKEN"// A client from OpenAPI Generator: see Build a client.
import {
Configuration,
DistributionsApi,
ProblemFromJSON,
ResponseError,
} from "./nodeasset-client";
const api = new DistributionsApi(new Configuration({
basePath: "https://engine.example.com",
accessToken: process.env.TOKEN,
}));
try {
const answer = await api.getDistributionExport({ distributionId: "d-27c46953-a001" });
console.log(answer);
} catch (e) {
if (!(e instanceof ResponseError)) throw e;
// A refusal is a problem; its type ends in the slug.
const problem = ProblemFromJSON(await e.response.json());
const slug = problem.type.split(":").pop();
console.error(e.response.status, slug, problem.detail);
}
# A client from OpenAPI Generator: see Build a client.
import os
import sys
import nodeasset_client
config = nodeasset_client.Configuration(
host="https://engine.example.com",
access_token=os.environ["TOKEN"],
)
with nodeasset_client.ApiClient(config) as client:
api = nodeasset_client.DistributionsApi(client)
try:
answer = api.get_distribution_export(distribution_id="d-27c46953-a001")
print(answer)
except nodeasset_client.ApiException as e:
# A refusal is a problem; its type ends in the slug.
problem = nodeasset_client.Problem.from_json(e.body)
slug = problem.type.rsplit(":", 1)[-1]
print(e.status, slug, problem.detail, file=sys.stderr)
// A client from OpenAPI Generator: see Build a client.
import nodeasset.client.ApiClient;
import nodeasset.client.ApiException;
import nodeasset.client.api.DistributionsApi;
import nodeasset.client.model.Problem;
public class GetDistributionExport {
public static void main(String[] args) throws Exception {
ApiClient client = new ApiClient();
client.updateBaseUri("https://engine.example.com");
client.setRequestInterceptor(builder ->
builder.header("Authorization", "Bearer " + System.getenv("TOKEN")));
DistributionsApi api = new DistributionsApi(client);
try {
var request = DistributionsApi.APIGetDistributionExportRequest.newBuilder()
.distributionId("d-27c46953-a001")
.build();
var answer = api.getDistributionExport(request);
System.out.println(answer);
} catch (ApiException e) {
// A refusal is a problem; its type ends in the slug.
Problem problem = client.getObjectMapper()
.readValue(e.getResponseBody(), Problem.class);
String type = problem.getType();
String slug = type.substring(type.lastIndexOf(':') + 1);
System.err.println(e.getCode() + " " + slug + " " + problem.getDetail());
}
}
}
{
"distributionId": "d-27c46953-a001",
"instrumentId": "FUND",
"isin": "US0000000001",
"currency": "USD",
"period": "2026-10",
"recordDate": "2026-10-31",
"paymentDate": "2026-11-02",
"entitledAt": "2026-10-03T13:18:19.902114Z",
"state": "paid",
"navAsOf": "2026-10-03T13:18:18.284Z",
"nav": 1.004003,
"withholdingRate": 0.154,
"totalGross": 636585.3,
"totalWithheld": 98034.1362,
"totalPayout": 538551.15,
"lines": [
{
"party": "alpha::12207ae69b2ef2f1249abd41923a06ee30bffa9298a17b0a875355c441bf32045d73",
"holderId": "alpha",
"externalAccounts": [
"fund-admin-list/ACC-alpha"
],
"gross": 20,
"withheld": 3.08,
"payout": 16.92,
"lei": "984500ALPHAEXAMPLE60",
"externalRefs": {
"clientId": "C-0042",
"accountId": "110-234-567890"
},
"units": 5000,
"net": 16.92,
"carried": 0,
"state": "rolled",
"paidAt": "2026-10-03T13:18:24.611204Z",
"paidUpdateId": "1220c4a19e8f7d6b5a4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}Get a distribution export
Returns a distribution’s frozen plan per account, as JSON or CSV, for a fund administrator to check.
curl -s \
"https://engine.example.com/v1/distributions/d-27c46953-a001/export" \
-H "Authorization: Bearer $TOKEN"// A client from OpenAPI Generator: see Build a client.
import {
Configuration,
DistributionsApi,
ProblemFromJSON,
ResponseError,
} from "./nodeasset-client";
const api = new DistributionsApi(new Configuration({
basePath: "https://engine.example.com",
accessToken: process.env.TOKEN,
}));
try {
const answer = await api.getDistributionExport({ distributionId: "d-27c46953-a001" });
console.log(answer);
} catch (e) {
if (!(e instanceof ResponseError)) throw e;
// A refusal is a problem; its type ends in the slug.
const problem = ProblemFromJSON(await e.response.json());
const slug = problem.type.split(":").pop();
console.error(e.response.status, slug, problem.detail);
}
# A client from OpenAPI Generator: see Build a client.
import os
import sys
import nodeasset_client
config = nodeasset_client.Configuration(
host="https://engine.example.com",
access_token=os.environ["TOKEN"],
)
with nodeasset_client.ApiClient(config) as client:
api = nodeasset_client.DistributionsApi(client)
try:
answer = api.get_distribution_export(distribution_id="d-27c46953-a001")
print(answer)
except nodeasset_client.ApiException as e:
# A refusal is a problem; its type ends in the slug.
problem = nodeasset_client.Problem.from_json(e.body)
slug = problem.type.rsplit(":", 1)[-1]
print(e.status, slug, problem.detail, file=sys.stderr)
// A client from OpenAPI Generator: see Build a client.
import nodeasset.client.ApiClient;
import nodeasset.client.ApiException;
import nodeasset.client.api.DistributionsApi;
import nodeasset.client.model.Problem;
public class GetDistributionExport {
public static void main(String[] args) throws Exception {
ApiClient client = new ApiClient();
client.updateBaseUri("https://engine.example.com");
client.setRequestInterceptor(builder ->
builder.header("Authorization", "Bearer " + System.getenv("TOKEN")));
DistributionsApi api = new DistributionsApi(client);
try {
var request = DistributionsApi.APIGetDistributionExportRequest.newBuilder()
.distributionId("d-27c46953-a001")
.build();
var answer = api.getDistributionExport(request);
System.out.println(answer);
} catch (ApiException e) {
// A refusal is a problem; its type ends in the slug.
Problem problem = client.getObjectMapper()
.readValue(e.getResponseBody(), Problem.class);
String type = problem.getType();
String slug = type.substring(type.lastIndexOf(':') + 1);
System.err.println(e.getCode() + " " + slug + " " + problem.getDetail());
}
}
}
{
"distributionId": "d-27c46953-a001",
"instrumentId": "FUND",
"isin": "US0000000001",
"currency": "USD",
"period": "2026-10",
"recordDate": "2026-10-31",
"paymentDate": "2026-11-02",
"entitledAt": "2026-10-03T13:18:19.902114Z",
"state": "paid",
"navAsOf": "2026-10-03T13:18:18.284Z",
"nav": 1.004003,
"withholdingRate": 0.154,
"totalGross": 636585.3,
"totalWithheld": 98034.1362,
"totalPayout": 538551.15,
"lines": [
{
"party": "alpha::12207ae69b2ef2f1249abd41923a06ee30bffa9298a17b0a875355c441bf32045d73",
"holderId": "alpha",
"externalAccounts": [
"fund-admin-list/ACC-alpha"
],
"gross": 20,
"withheld": 3.08,
"payout": 16.92,
"lei": "984500ALPHAEXAMPLE60",
"externalRefs": {
"clientId": "C-0042",
"accountId": "110-234-567890"
},
"units": 5000,
"net": 16.92,
"carried": 0,
"state": "rolled",
"paidAt": "2026-10-03T13:18:24.611204Z",
"paidUpdateId": "1220c4a19e8f7d6b5a4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"requestId": "<string>",
"gate": "<string>",
"check": "<string>",
"recovery": "<string>",
"retryAfter": 123,
"retryable": true,
"packageName": "<string>",
"party": "<string>",
"contractId": "<string>",
"projectionOffset": 123,
"ledgerEnd": 123,
"code": 123,
"reason": "<string>",
"policyVersion": 123,
"errors": [
{
"pointer": "<string>",
"detail": "<string>"
}
]
}app, approver, auditor, operator, registrar, risk.Authorizations
A JWT from the deployment's identity provider, whose roles claim names the caller's roles and whose holder claim names an investor's holder.
Headers
A signed request's key id, as venue.api.signing.clients configures it for the bearer's subject.
Seconds since the epoch, within venue.api.signing.window of the engine's clock, 5 minutes by default.
^[0-9]+$At least 16 random bytes in base64url, never reused within twice the window.
22 - 128^[A-Za-z0-9_-]+={0,2}$The base64 HMAC-SHA256, under the key's secret, of the method, the path and query, the timestamp, the nonce and the body's SHA-256.
Your id for this request, 1 to 128 printable characters, repeated in the answer; absent, the engine makes one.
128^[\x21-\x7E]+$A W3C trace context, which the engine joins and passes on.
^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$Path Parameters
The distribution's id.
Query Parameters
json, the default, for the export as JSON, or csv for a CSV file.
The form a read answers in.
json, csv Response
The frozen plan per account.
A distribution's frozen plan, per account.
The distribution's id.
The instrument's id on the Registry.
The instrument's ISIN, as the manifest records it; null when it records none.
The ISO 4217 currency the instrument records; null when it records none.
Its period's record date, yyyy-MM-dd, in the instrument's distribution calendar; null where the calendar gives none.
Its period's payment date, yyyy-MM-dd, in the instrument's distribution calendar; null where the calendar gives none.
The ledger time its plan read the holders' rows at, who was entitled to what; null where the projection cannot date it.
The period, uuuu-MM.
Where the distribution stands.
awaiting-administrator, payable, held, partial, paid The instant of the oracle point the plan is computed at.
The NAV per unit.
The withholding rate the point carries.
The plan's gross, every line together.
The plan's withholding, every line together.
The plan's payout, every line together.
One line per account.
Show child attributes
Show child attributes

