> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fireblocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/policy-editor-v2-beta/get-the-active-draft-by-policy-type",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Get the active draft by policy type

> Returns the active draft and its validation for a specific policy type. 
**Note:** These endpoints are currently in beta and might be subject to changes.




## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml get /policy/draft
openapi: 3.0.0
info:
  title: Fireblocks API
  description: >
    Fireblocks provides a suite of applications to manage digital asset
    operations and a complete development platform to build your business on the
    blockchain.


    - Visit our website for more information: [Fireblocks
    Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks
    DevPortal](https://developers.fireblocks.com)
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
  - url: https://api.fireblocks.io/v1
    description: Fireblocks Production Environment Base URL
  - url: https://sandbox-api.fireblocks.io/v1
    description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /policy/draft:
    get:
      tags:
        - Policy Editor V2 (Beta)
      summary: Get the active draft by policy type
      description: >
        Returns the active draft and its validation for a specific policy type. 

        **Note:** These endpoints are currently in beta and might be subject to
        changes.
      operationId: getDraft
      parameters:
        - name: policyType
          in: query
          required: true
          description: >-
            The policy type(s) to retrieve. Can be a single type or multiple
            types by repeating the parameter (e.g.,
            ?policyType=TRANSFER&policyType=MINT).
          schema:
            $ref: '#/components/schemas/PolicyType'
      responses:
        '200':
          description: A draft validation response object
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftReviewAndValidationResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response:
            Promise<FireblocksResponse<DraftReviewAndValidationResponse>> =
            fireblocks.policyEditorV2Beta.getDraft(policyEditorV2BetaApiGetDraftRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<DraftReviewAndValidationResponse>>
            response = fireblocks.policyEditorV2Beta().getDraft(policyType);
        - lang: Python
          source: response = fireblocks.policy_editor_v2_beta.get_draft(policy_type);
components:
  schemas:
    PolicyType:
      type: string
      enum:
        - TRANSFER
        - STAKE
        - CONTRACT_CALL
        - TYPED_MESSAGE
        - APPROVE
        - MINT
        - BURN
        - RAW
        - COMPLIANCE
        - DEPLOYMENT
        - PROGRAM_CALL
        - DAPP_CONNECTION
        - UPGRADE
        - ORDER
        - AML_CHAINALYSIS_V2_SCREENING
        - AML_CHAINALYSIS_V2_POST_SCREENING
        - AML_ELLIPTIC_HOLISTIC_SCREENING
        - AML_ELLIPTIC_HOLISTIC_POST_SCREENING
        - TR_NOTABENE_SCREENING
        - TR_NOTABENE_POST_SCREENING
      description: Policy type enumeration
      example: TRANSFER
    DraftReviewAndValidationResponse:
      type: object
      description: Draft validation
      properties:
        draftResponse:
          $ref: '#/components/schemas/DraftResponse'
        validation:
          $ref: '#/components/schemas/PolicyValidation'
      required:
        - draftResponse
        - validation
    DraftResponse:
      type: object
      description: Response object for draft operations
      properties:
        status:
          type: string
          description: Operation status
        rules:
          type: array
          description: Draft rules
          items:
            $ref: '#/components/schemas/PolicyRule'
        draftId:
          type: string
          description: Draft unique id
        metadata:
          $ref: '#/components/schemas/PolicyMetadata'
      required:
        - draftId
        - status
        - rules
        - metadata
    PolicyValidation:
      type: object
      description: Policy validation object
      properties:
        status:
          type: string
          description: Validation status
        checkResult:
          $ref: '#/components/schemas/PolicyCheckResult'
      required:
        - status
        - checkResult
    ErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
    PolicyRule:
      type: object
      description: V2 Policy rule which is enforced on transactions
      properties:
        name:
          type: string
          description: Name of the policy rule
          example: High Value Transfer Policy
        id:
          type: string
          description: Unique identifier for the policy rule
          example: policy_rule_001
        policyEngineVersion:
          type: string
          enum:
            - v2
          description: Policy engine version
          example: v2
        type:
          $ref: '#/components/schemas/PolicyType'
        subType:
          $ref: '#/components/schemas/PolicyType'
        initiator:
          $ref: '#/components/schemas/InitiatorConfigPattern'
        asset:
          $ref: '#/components/schemas/AssetConfig'
        source:
          $ref: '#/components/schemas/SourceConfig'
        destination:
          $ref: '#/components/schemas/DestinationConfig'
        account:
          $ref: '#/components/schemas/AccountConfig'
        side:
          $ref: '#/components/schemas/OrderSide'
        verdict:
          $ref: '#/components/schemas/VerdictConfig'
        amountOverTime:
          $ref: '#/components/schemas/AmountOverTimeConfig'
        amount:
          $ref: '#/components/schemas/AmountConfig'
        externalDescriptor:
          type: string
          description: External descriptor for the rule
          example: High value transfer policy for institutional clients
        method:
          $ref: '#/components/schemas/ContractMethodPattern'
        isGlobalPolicy:
          type: boolean
          description: Whether this is a global policy
          example: false
        programCall:
          $ref: '#/components/schemas/ProgramCallConfig'
        screeningMetadata:
          $ref: '#/components/schemas/ScreeningMetadataConfig'
        quoteAsset:
          $ref: '#/components/schemas/AssetConfig'
        baseAsset:
          $ref: '#/components/schemas/AssetConfig'
        quoteAmount:
          $ref: '#/components/schemas/AmountRange'
        baseAmount:
          $ref: '#/components/schemas/AmountRange'
        dAppAddress:
          $ref: '#/components/schemas/DAppAddressConfig'
        derivationPath:
          $ref: '#/components/schemas/DerivationPathConfig'
        index:
          type: number
          description: Index for the policy rule
          example: 1
      required:
        - name
        - id
        - policyEngineVersion
        - type
        - initiator
        - source
        - verdict
    PolicyMetadata:
      type: object
      description: Policy metadata
      properties:
        editedBy:
          type: string
          description: The user ID of the user who last edited the policy
          example: user123
        editedAt:
          type: string
          description: The timestamp of the last edit of the policy
          example: '2024-01-15T10:30:00Z'
        publishedBy:
          type: string
          description: The user ID of the user who last published the policy
          example: user456
        publishedAt:
          type: string
          description: The timestamp of the last publish of the policy
          example: '2024-01-15T11:00:00Z'
        policyType:
          $ref: '#/components/schemas/PolicyType'
      required:
        - policyType
    PolicyCheckResult:
      type: object
      description: Policy rules validation result
      properties:
        errors:
          type: number
          description: Number of errors
        results:
          type: array
          description: A set of validation results
          items:
            $ref: '#/components/schemas/PolicyRuleCheckResult'
      required:
        - errors
        - results
    InitiatorConfigPattern:
      oneOf:
        - type: string
          enum:
            - '*'
          description: All users are allowed
          example: '*'
        - $ref: '#/components/schemas/InitiatorConfig'
    AssetConfig:
      type: object
      description: Policy asset configuration
      properties:
        nftTransfer:
          type: boolean
          description: Whether this is an NFT transfer
          example: false
        assetTypes:
          $ref: '#/components/schemas/AssetTypesConfig'
        operator:
          $ref: '#/components/schemas/PolicyOperator'
      required:
        - nftTransfer
    SourceConfig:
      type: object
      description: Source account configuration for policy rules
      properties:
        type:
          type: array
          items:
            $ref: '#/components/schemas/AccountType-2'
          description: Source account types
          example:
            - VAULT
            - UNMANAGED
        subType:
          type: array
          items:
            $ref: '#/components/schemas/AccountIdentifier'
          description: Source account subtypes
        ids:
          type: array
          items:
            $ref: '#/components/schemas/AccountIdentifier'
          description: Source account identifiers
        tags:
          type: array
          items:
            $ref: '#/components/schemas/PolicyTag'
          description: Tags for source matching
        operator:
          $ref: '#/components/schemas/PolicyOperator'
        matchFrom:
          type: string
          enum:
            - ACCOUNT
          description: Whether to match from account (relevant only for ORDER policy type)
          example: ACCOUNT
      required:
        - operator
    DestinationConfig:
      type: object
      description: Destination configuration for policy rules
      properties:
        type:
          type: array
          items:
            $ref: '#/components/schemas/AccountType-2'
          description: Destination account types
        subType:
          type: array
          items:
            $ref: '#/components/schemas/AccountIdentifier'
        ids:
          type: array
          items:
            $ref: '#/components/schemas/AccountIdentifier'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/PolicyTag'
          description: Tags for destination matching
        operator:
          $ref: '#/components/schemas/PolicyOperator'
        matchFrom:
          type: string
          enum:
            - ACCOUNT
            - SOURCE
          description: >-
            Whether to match from account or source (relevant only for ORDER
            policy type). If set to ACCOUNT, only matchFrom is allowed and other
            fields are not required.
          example: ACCOUNT
        addressType:
          type: string
          enum:
            - '*'
            - WHITELISTED
            - ONE_TIME
          description: Type of destination addresses allowed
          example: WHITELISTED
      required:
        - operator
        - addressType
      example:
        type:
          - EXTERNAL
        operator: INCLUDES
        addressType: WHITELISTED
    AccountConfig:
      type: object
      description: Policy account configuration
      properties:
        type:
          type: array
          items:
            $ref: '#/components/schemas/AccountType-2'
          description: Account types
        subType:
          type: array
          items:
            $ref: '#/components/schemas/AccountIdentifier'
        ids:
          type: array
          items:
            $ref: '#/components/schemas/AccountIdentifier'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/PolicyTag'
          description: Tags for account matching
        operator:
          $ref: '#/components/schemas/PolicyOperator'
        matchFrom:
          type: string
          enum:
            - ACCOUNT
            - SOURCE
          description: Whether to match from account or source
          example: ACCOUNT
      required:
        - operator
    OrderSide:
      type: string
      enum:
        - BUY
        - SELL
        - ANY
      description: Order side for trading operations
      example: BUY
    VerdictConfig:
      type: object
      description: Verdict configuration
      properties:
        action:
          type: string
          enum:
            - ALLOW
            - BLOCK
            - 2-TIER
            - ACCEPT
            - REJECT
            - ALERT
            - SCREEN
            - PASS
            - WAIT
            - FREEZE
            - CANCEL
          description: Verdict action
          example: ALLOW
        approvers:
          $ref: '#/components/schemas/ApproversConfig'
        designatedSigners:
          $ref: '#/components/schemas/DesignatedSignersConfig'
      required:
        - action
    AmountOverTimeConfig:
      type: object
      description: Amount over time configuration
      properties:
        range:
          $ref: '#/components/schemas/AmountRangeMinMax-2'
        currency:
          $ref: '#/components/schemas/PolicyCurrency'
        timePeriod:
          $ref: '#/components/schemas/TimePeriodConfig'
      required:
        - range
        - currency
        - timePeriod
    AmountConfig:
      allOf:
        - $ref: '#/components/schemas/AmountRange'
        - $ref: '#/components/schemas/AmountConfigCurrency'
      example:
        range:
          min: '100'
          max: '10000'
        currency: USD
    ContractMethodPattern:
      oneOf:
        - type: string
          enum:
            - '*'
          description: All methods allowed
          example: '*'
        - $ref: '#/components/schemas/ContractMethodConfig'
    ProgramCallConfig:
      type: object
      description: Program call configuration
      properties:
        allowedSolanaProgramCalls:
          type: string
          enum:
            - '*'
            - WHITELISTED
          description: Whether Solana program calls are allowed
          example: WHITELISTED
      required:
        - allowedSolanaProgramCalls
    ScreeningMetadataConfig:
      type: object
      description: Screening metadata configuration
      properties:
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
            - ANY
          description: Direction of transaction
          example: OUTBOUND
        provider:
          type: string
          enum:
            - CHAINALYSIS
            - CHAINALYSIS_V2
            - ELLIPTIC
            - ELLIPTIC_HOLISTIC
            - NOTABENE
          nullable: true
          description: Screening provider
          example: CHAINALYSIS
        riskRating:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
            - SEVERE
            - ANY
          description: Risk rating threshold
          example: MEDIUM
        riskScore:
          type: string
          description: Risk score threshold
          example: '0.8'
        exposureType:
          type: string
          enum:
            - DIRECT
            - INDIRECT
            - ANY
          description: Exposure type
          example: DIRECT
        category:
          type: array
          items:
            type: string
        name:
          type: array
          items:
            type: string
        categoryId:
          type: array
          items:
            type: string
        status:
          type: string
          enum:
            - COMPLETED
            - PENDING
            - REJECTED
            - FAILED
            - CANCELED
            - BLOCKING_TIME_EXPIRED
          description: Transaction status
          example: COMPLETED
        sourceAddress:
          type: string
          description: Source address
          example: 0x123...
        destAddress:
          type: string
          description: Destination address
          example: 0x456...
    AmountRange:
      type: object
      description: Amount range with minimum and maximum values
      properties:
        range:
          $ref: '#/components/schemas/AmountRangeMinMax-2'
      required:
        - range
      example:
        range:
          min: '100'
          max: '10000'
    DAppAddressConfig:
      type: object
      description: dApp address configuration for policy rules
      properties:
        globalWhitelisted:
          type: array
          items:
            type: string
          description: Globally whitelisted addresses
          example:
            - rabby.io
            - jup.ag
        tenantWhitelisted:
          type: array
          items:
            type: string
          description: Tenant whitelisted addresses
          example:
            - uniswap.com
            - opensea.io
        urls:
          type: array
          items:
            type: string
          description: Allowed all address
          example:
            - '*'
        operator:
          $ref: '#/components/schemas/PolicyOperator'
      required:
        - globalWhitelisted
        - tenantWhitelisted
        - urls
        - operator
    DerivationPathConfig:
      type: object
      description: Derivation path configuration
      properties:
        path:
          type: array
          items:
            type: number
          description: Derivation path as array of numbers
          example:
            - 44
            - 0
            - 0
            - 0
            - 0
        partial:
          type: boolean
          description: Whether this is a partial path
          example: false
      required:
        - path
      example:
        path:
          - 44
          - 0
          - 0
          - 0
          - 0
        partial: false
    PolicyRuleCheckResult:
      type: object
      description: The rule validation result
      properties:
        index:
          type: number
          description: Rule index number in the policy
        status:
          type: string
          description: Validation status
          enum:
            - ok
            - failure
        errors:
          type: array
          description: A set of rule validation error objects
          items:
            $ref: '#/components/schemas/PolicyRuleError'
      required:
        - index
        - status
        - errors
    InitiatorConfig:
      type: object
      description: Policy rule initiator configuration
      properties:
        users:
          $ref: '#/components/schemas/PolicyUserIds'
        groups:
          $ref: '#/components/schemas/PolicyGroupIds'
        services:
          type: array
          items:
            type: string
        fbAdminGroups:
          type: array
          items:
            type: string
        exchange:
          type: array
          items:
            type: string
        operator:
          $ref: '#/components/schemas/PolicyOperator'
    AssetTypesConfig:
      type: array
      items:
        oneOf:
          - type: string
          - enum:
              - '*'
      description: List of asset types
      example:
        - FUNGIBLE
        - NFT
        - '*'
    PolicyOperator:
      type: string
      enum:
        - INCLUDES
      description: Operator for selection
      example: INCLUDES
    AccountType-2:
      type: string
      enum:
        - EXCHANGE
        - UNMANAGED
        - VAULT
        - GLOBAL_WHITELIST
        - NETWORK_CONNECTION
        - FIAT_ACCOUNT
        - CONNECTED_ACCOUNT
        - ONE_TIME_ADDRESS
        - SRC_DST_NA
        - MULTIPLE_VENUES
        - END_USER_WALLET
        - OEC_PARTNER
        - CONTRACT
        - INTERNAL
        - EXTERNAL
        - DAPP_CONNECTION
        - UNKNOWN
        - '*'
        - ANY
      description: Type of account
      example: VAULT
    AccountIdentifier:
      type: object
      description: Account identifier with type, ID, subtype, and address
      properties:
        type:
          $ref: '#/components/schemas/AccountType-2'
        id:
          type: string
          description: Account ID
          example: account123
        subType:
          type: string
          description: Account subtype
          example: INTERNAL
        address:
          type: string
          description: Account address
          example: 0x123...
      required:
        - type
    PolicyTag:
      type: object
      description: Policy tag for matching
      properties:
        id:
          type: string
          description: Tag identifier
          example: tag_001
      required:
        - id
    ApproversConfig:
      type: object
      description: Approvers configuration
      properties:
        canInitiatorApprove:
          type: boolean
          description: Whether initiator can approve
          example: false
        operator:
          type: string
          enum:
            - AND
            - OR
          description: Operator for approval groups
          example: AND
        allowOperatorAsAuthorizer:
          type: boolean
          description: Whether operator can be authorizer
          example: false
        approvalGroups:
          type: array
          items:
            type: object
            properties:
              threshold:
                type: number
                description: Approval threshold
                example: 2
              users:
                $ref: '#/components/schemas/PolicyUserIds'
              groups:
                $ref: '#/components/schemas/PolicyGroupIds'
            required:
              - threshold
          description: List of approval groups
          example:
            - threshold: 2
              users:
                - user1
                - user2
      required:
        - canInitiatorApprove
    DesignatedSignersConfig:
      type: object
      description: Designated signers configuration
      properties:
        type:
          type: string
          enum:
            - SINGLE
            - MULTIPLE
            - INITIATOR
          description: Type of designated signers
          example: SINGLE
        users:
          $ref: '#/components/schemas/PolicyUserIds'
        groups:
          $ref: '#/components/schemas/PolicyGroupIds'
      required:
        - type
    AmountRangeMinMax-2:
      type: object
      description: Amount range with minimum and maximum values
      properties:
        min:
          type: string
          description: Minimum amount
          example: '100'
        max:
          type: string
          description: Maximum amount
          example: '10000'
      required:
        - min
      example:
        min: '100'
        max: '10000'
    PolicyCurrency:
      type: string
      enum:
        - NATIVE
        - USD
        - EUR
      description: Currency for the amount
      example: USD
    TimePeriodConfig:
      type: object
      description: Time period configuration
      properties:
        seconds:
          type: string
          description: Time period in seconds
          example: '86400'
        initiator:
          $ref: '#/components/schemas/TimePeriodMatchType'
        source:
          $ref: '#/components/schemas/TimePeriodMatchType'
        destination:
          $ref: '#/components/schemas/TimePeriodMatchType'
      required:
        - seconds
        - initiator
        - source
        - destination
    AmountConfigCurrency:
      type: object
      description: Currency property for amount configuration
      properties:
        currency:
          $ref: '#/components/schemas/PolicyCurrency'
    ContractMethodConfig:
      type: object
      description: Contract method configuration
      properties:
        methodCalls:
          type: array
          items:
            type: string
        operator:
          type: string
          enum:
            - EITHER
            - EXACT
          description: Operator for method calls
          example: EITHER
        payloadSuffix:
          type: string
          description: Payload suffix for method calls
          example: 0x123...
      required:
        - methodCalls
        - operator
      example:
        methodCalls:
          - transfer
          - approve
        operator: EITHER
    PolicyRuleError:
      type: object
      description: Rule validation result error
      properties:
        errorMessage:
          type: string
          description: Error message
        errorCode:
          type: number
          description: error code
        errorCodeName:
          type: string
          description: error code name
        errorField:
          type: string
          enum:
            - operator
            - operators
            - authorizationGroups
            - designatedSigner
            - designatedSigners
            - contractMethods
            - amountAggregation
            - src
            - dst
          description: |
            The field which the error relates to
            * operator - transaction initiator
            * operators - transaction initiators
            * authorizationGroups - transaction authorizer groups
            * designatedSigner - transaction signer
            * designatedSigners - transaction signers
            * contractMethods - contract methods
            * amountAggregation - transaction amount aggregation configuration
            * src - transaction source asset configuration
            * dst - transaction destination asset configuration
      required:
        - errorMessage
        - errorCode
        - errorCodeName
        - errorField
    PolicyUserIds:
      type: array
      items:
        type: string
      description: List of user IDs
      example:
        - user1
        - user2
    PolicyGroupIds:
      type: array
      items:
        type: string
      description: List of policy group IDs
      example:
        - group1
        - group2
    TimePeriodMatchType:
      type: string
      enum:
        - PER_SINGLE_MATCH
        - ACROSS_ALL_MATCHES
      description: Type of match for time period application
      example: PER_SINGLE_MATCH
  headers:
    X-Request-ID:
      schema:
        type: string
      description: >-
        Unique ID correlated to the API request. Please provide it in any
        support ticket you create or on Github issues related to Fireblocks SDKs
  responses:
    Error:
      description: Error Response
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorSchema'

````