> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-update-ref-tables.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# POST /registry/allocation-instruction/v1/allocation-factory

> Get the factory and choice context for creating allocations using the `AllocationFactory_Allocate` choice.




## OpenAPI

````yaml /openapi/splice/token-standard/allocation-instruction-v1.yaml post /registry/allocation-instruction/v1/allocation-factory
openapi: 3.0.0
info:
  title: allocation instruction off-ledger API
  description: |
    Implemented by token registries for using and managing
    allocation instructions by wallets.
  version: 1.0.0
servers: []
security: []
paths:
  /registry/allocation-instruction/v1/allocation-factory:
    post:
      summary: POST /registry/allocation-instruction/v1/allocation-factory
      description: >
        Get the factory and choice context for creating allocations using the
        `AllocationFactory_Allocate` choice.
      operationId: getAllocationFactory
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetFactoryRequest'
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FactoryWithChoiceContext'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
components:
  schemas:
    GetFactoryRequest:
      type: object
      properties:
        choiceArguments:
          type: object
          description: >
            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.
        excludeDebugFields:
          description: >-
            If set to true, the response will not include fields prefixed with
            'debug'. Useful to save bandwidth.
          default: false
          type: boolean
      required:
        - choiceArguments
    FactoryWithChoiceContext:
      description: >
        A factory contract together with the choice context required to exercise
        the choice

        provided by the factory. Typically used to implement the generic
        initiation of on-ledger workflows

        via a Daml interface.


        Clients SHOULD avoid reusing the same `FactoryWithChoiceContext` for
        exercising multiple choices,

        as the choice context MAY be specific to the choice being exercised.
      type: object
      properties:
        factoryId:
          description: The contract ID of the contract implementing the factory interface.
          type: string
        choiceContext:
          $ref: '#/components/schemas/ChoiceContext'
      required:
        - factoryId
        - choiceContext
    ChoiceContext:
      description: >
        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`.
      type: object
      properties:
        choiceContextData:
          description: The additional data to use when exercising the choice.
          type: object
        disclosedContracts:
          description: >
            The contracts that are required to be disclosed to the participant
            node for exercising

            the choice.
          type: array
          items:
            $ref: '#/components/schemas/DisclosedContract'
      required:
        - choiceContextData
        - disclosedContracts
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
    DisclosedContract:
      type: object
      properties:
        templateId:
          type: string
        contractId:
          type: string
        createdEventBlob:
          type: string
        synchronizerId:
          description: >
            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.
          type: string
        debugPackageName:
          description: >
            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`.
          type: string
        debugPayload:
          description: >
            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`.
          type: object
        debugCreatedAt:
          description: >
            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`.
          type: string
          format: date-time
      required:
        - templateId
        - contractId
        - createdEventBlob
        - synchronizerId
  responses:
    '400':
      description: bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    '404':
      description: not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'

````