curl --request POST \
--url 'https://example.com/registry/allocation-instruction/v1/allocation-factory' \
--header 'Content-Type: application/json' \
--data '{
"choiceArguments": {},
"excludeDebugFields": false
}'
import json
import requests
url = "https://example.com/registry/allocation-instruction/v1/allocation-factory"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
"choiceArguments": {},
"excludeDebugFields": false
}''')
response = requests.request(
"POST", url, headers=headers, json=payload
)
print(response.text)
const response = await fetch('https://example.com/registry/allocation-instruction/v1/allocation-factory', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"choiceArguments": {},
"excludeDebugFields": false
}),
});
console.log(await response.text());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://example.com/registry/allocation-instruction/v1/allocation-factory',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"choiceArguments": {},
"excludeDebugFields": false
}
JSON,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://example.com/registry/allocation-instruction/v1/allocation-factory", bytes.NewBufferString(`{
"choiceArguments": {},
"excludeDebugFields": false
}`))
req.Header.Set("Content-Type", "application/json")
response, _ := http.DefaultClient.Do(req)
defer response.Body.Close()
body, _ := io.ReadAll(response.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/registry/allocation-instruction/v1/allocation-factory"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"choiceArguments": {},
"excludeDebugFields": false
}
"""))
.build();
var response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'
uri = URI('https://example.com/registry/allocation-instruction/v1/allocation-factory')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"choiceArguments": {},
"excludeDebugFields": false
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"factoryId": "<string>",
"choiceContext": {
"choiceContextData": {},
"disclosedContracts": [
{
"templateId": "<string>",
"contractId": "<string>",
"createdEventBlob": "<string>",
"synchronizerId": "<string>",
"debugPackageName": "<string>",
"debugPayload": {},
"debugCreatedAt": "2026-01-01T00:00:00Z"
}
]
}
}
{
"error": "<string>"
}
{
"error": "<string>"
}
POST /registry/allocation-instruction/v1/allocation-factory
Get the factory and choice context for creating allocations using the AllocationFactory_Allocate choice.
POST
/
registry
/
allocation-instruction
/
v1
/
allocation-factory
curl --request POST \
--url 'https://example.com/registry/allocation-instruction/v1/allocation-factory' \
--header 'Content-Type: application/json' \
--data '{
"choiceArguments": {},
"excludeDebugFields": false
}'
import json
import requests
url = "https://example.com/registry/allocation-instruction/v1/allocation-factory"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
"choiceArguments": {},
"excludeDebugFields": false
}''')
response = requests.request(
"POST", url, headers=headers, json=payload
)
print(response.text)
const response = await fetch('https://example.com/registry/allocation-instruction/v1/allocation-factory', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"choiceArguments": {},
"excludeDebugFields": false
}),
});
console.log(await response.text());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://example.com/registry/allocation-instruction/v1/allocation-factory',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"choiceArguments": {},
"excludeDebugFields": false
}
JSON,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://example.com/registry/allocation-instruction/v1/allocation-factory", bytes.NewBufferString(`{
"choiceArguments": {},
"excludeDebugFields": false
}`))
req.Header.Set("Content-Type", "application/json")
response, _ := http.DefaultClient.Do(req)
defer response.Body.Close()
body, _ := io.ReadAll(response.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/registry/allocation-instruction/v1/allocation-factory"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"choiceArguments": {},
"excludeDebugFields": false
}
"""))
.build();
var response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'
uri = URI('https://example.com/registry/allocation-instruction/v1/allocation-factory')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"choiceArguments": {},
"excludeDebugFields": false
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"factoryId": "<string>",
"choiceContext": {
"choiceContextData": {},
"disclosedContracts": [
{
"templateId": "<string>",
"contractId": "<string>",
"createdEventBlob": "<string>",
"synchronizerId": "<string>",
"debugPackageName": "<string>",
"debugPayload": {},
"debugCreatedAt": "2026-01-01T00:00:00Z"
}
]
}
}
{
"error": "<string>"
}
{
"error": "<string>"
}
Get the factory and choice context for creating allocations using the AllocationFactory_Allocate choice.
OpenAPIAdded 0.5.10
curl --request POST \
--url 'https://example.com/registry/allocation-instruction/v1/allocation-factory' \
--header 'Content-Type: application/json' \
--data '{
"choiceArguments": {},
"excludeDebugFields": false
}'
import json
import requests
url = "https://example.com/registry/allocation-instruction/v1/allocation-factory"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
"choiceArguments": {},
"excludeDebugFields": false
}''')
response = requests.request(
"POST", url, headers=headers, json=payload
)
print(response.text)
const response = await fetch('https://example.com/registry/allocation-instruction/v1/allocation-factory', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"choiceArguments": {},
"excludeDebugFields": false
}),
});
console.log(await response.text());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://example.com/registry/allocation-instruction/v1/allocation-factory',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"choiceArguments": {},
"excludeDebugFields": false
}
JSON,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://example.com/registry/allocation-instruction/v1/allocation-factory", bytes.NewBufferString(`{
"choiceArguments": {},
"excludeDebugFields": false
}`))
req.Header.Set("Content-Type", "application/json")
response, _ := http.DefaultClient.Do(req)
defer response.Body.Close()
body, _ := io.ReadAll(response.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/registry/allocation-instruction/v1/allocation-factory"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"choiceArguments": {},
"excludeDebugFields": false
}
"""))
.build();
var response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'
uri = URI('https://example.com/registry/allocation-instruction/v1/allocation-factory')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"choiceArguments": {},
"excludeDebugFields": false
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"factoryId": "<string>",
"choiceContext": {
"choiceContextData": {},
"disclosedContracts": [
{
"templateId": "<string>",
"contractId": "<string>",
"createdEventBlob": "<string>",
"synchronizerId": "<string>",
"debugPackageName": "<string>",
"debugPayload": {},
"debugCreatedAt": "2026-01-01T00:00:00Z"
}
]
}
}
{
"error": "<string>"
}
{
"error": "<string>"
}
Body
application/json
object
required
The arguments that are intended to be passed to the choice provided by the factory. To avoid repeating the Daml type definitions, they are specified as JSON objects. However the concrete format is given by how the choice arguments are encoded using the Daml JSON API (with the
extraArgs.context and extraArgs.meta fields set to the empty object). The choice arguments are provided so that the registry can also provide choice-argument specific contracts, e.g., the configuration for a specific instrument-id.boolean
default:"false"
If set to true, the response will not include fields prefixed with ‘debug’. Useful to save bandwidth.
Responses
200
okapplication/json
string
required
The contract ID of the contract implementing the factory interface.
ChoiceContext
required
The context required to exercise a choice on a contract via an interface. Used to retrieve additional reference date that is passed in via disclosed contracts, which are in turn referred to via their contract ID in the
choiceContextData.Show child attributes
Show child attributes
object
required
The additional data to use when exercising the choice.
DisclosedContract[]
required
The contracts that are required to be disclosed to the participant node for exercising the choice.
Show child attributes
Show child attributes
string
required
string
required
string
required
string
required
The synchronizer to which the contract is currently assigned. If the contract is in the process of being reassigned, then a “409” response is returned.
string
The name of the Daml package that was used to create the contract. Use this data only if you trust the provider, as it might not match the data in the
createdEventBlob.object
The contract arguments that were used to create the contract. Use this data only if you trust the provider, as it might not match the data in the
createdEventBlob.string (date-time)
The ledger effective time at which the contract was created. Use this data only if you trust the provider, as it might not match the data in the
createdEventBlob.400
bad requestapplication/json
string
required
404
not foundapplication/json
string
required
History
Added
0.5.10