---
title: "Get wallet policy"
method: GET
path: "/v1/payments/wallets/{walletId}/policies"
tags: ["Payments"]
---

# Get wallet policy

`GET /v1/payments/wallets/{walletId}/policies`

Retrieves payment policy rules for a custody wallet. Policies are payment controls layered on top of custody-managed wallets.

## Path parameters

- `walletId` string, required — Provider wallet ID — the `walletId` field returned by GET /v1/wallets. The wallet record `id` and the public key are not accepted.

## Headers

- `x-project-id` string — Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.

## Response `200`

Wallet policy

- object — Standard success response envelope.
  - `data` object, required — Wallet policy response payload.
    - `policy` object, required — Wallet policy configuration.
      - `walletId` string, required — Provider wallet ID — the `walletId` field returned by GET /v1/wallets.
      - `defaultAction` 'allow' | 'deny' | 'approval_required' | 'review', required — Wallet control profile default action when no rule matches. A wallet without an active profile is implicitly allow.
      - `rules` union[], required — Active wallet control profile rules; empty without a profile.
        - union — Wallet control profile rule. Supported kinds include operation_family, operation_type, asset, destination, amount, approval, and always. Program-family operations include earn_vault_deposit.
          - object
            - `id` string
            - `name` string
            - `description` string
            - `action` 'allow' | 'deny' | 'approval_required' | 'provider_approval_required' | 'review'
            - `kind` 'operation_family', required
            - `family` 'transfer' | 'payment' | 'ramp' | 'issuance' | 'program'
            - `families` string[]
          - object
            - `id` string
            - `name` string
            - `description` string
            - `action` 'allow' | 'deny' | 'approval_required' | 'provider_approval_required' | 'review'
            - `kind` 'operation_type', required
            - `operationType` 'earn_vault_deposit' | 'issuance_burn_execute' | 'issuance_force_burn_execute' | 'issuance_mint_execute' | 'issuance_seize_execute' | 'issuance_update_authority_execute' | 'payment_transfer_batch_execute' | 'payment_transfer_execute' | 'ramp_offramp_quote' | 'ramp_onramp_quote' | 'recurring_payment_collection' | 'recurring_payment_create' | 'recurring_payment_update'
            - `operationTypes` string[]
          - object
            - `id` string
            - `name` string
            - `description` string
            - `action` 'allow' | 'deny' | 'approval_required' | 'provider_approval_required' | 'review'
            - `kind` 'asset', required
            - `asset` string
            - `assets` string[]
          - object
            - `id` string
            - `name` string
            - `description` string
            - `action` 'allow' | 'deny' | 'approval_required' | 'provider_approval_required' | 'review'
            - `kind` 'destination', required
            - `allowlist` string[]
            - `blocklist` string[]
            - `destination` string
            - `destinations` string[]
          - object
            - `id` string
            - `name` string
            - `description` string
            - `action` 'allow' | 'deny' | 'approval_required' | 'provider_approval_required' | 'review'
            - `kind` 'amount', required
            - `min` string
            - `max` string
            - `asset` string
            - `assets` string[]
          - object
            - `id` string
            - `name` string
            - `description` string
            - `action` 'allow' | 'deny' | 'approval_required' | 'provider_approval_required' | 'review'
            - `kind` 'approval', required
            - `families` string[]
            - `operationTypes` string[]
            - `assets` string[]
            - `approvalGroupId` string
          - object
            - `id` string
            - `name` string
            - `description` string
            - `action` 'allow' | 'deny' | 'approval_required' | 'provider_approval_required' | 'review'
            - `kind` 'always', required
      - `controlProfile` object, nullable, required — Active wallet control profile metadata, or null when none is active.
        - `id` string, required — Wallet control profile ID.
        - `status` 'draft' | 'active' | 'disabled' | 'archived', required — Wallet control profile status.
        - `activeRevisionId` string, nullable, required — Currently active immutable revision ID.
        - `revisionId` string, nullable, required — Returned revision ID.
        - `revisionNumber` integer, nullable, required — Returned immutable revision number.
        - `commitMessage` string, nullable, required — Message describing the returned revision's changes, when provided.
        - `defaultAction` 'allow' | 'deny' | 'approval_required' | 'review', required — Decision used when no rule matches.
        - `rules` union[], required — Active policy rules.
          - union — Wallet control profile rule. Supported kinds include operation_family, operation_type, asset, destination, amount, approval, and always. Program-family operations include earn_vault_deposit.
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - `providerMappingStatus` 'not_applicable' | 'pending' | 'synced' | 'partial' | 'failed', required — Provider mapping status for this policy profile.
        - `createdAt` string, date-time, required — Profile creation timestamp.
        - `updatedAt` string, date-time, required — Profile update timestamp.
        - `activatedAt` string, date-time, nullable, required — Profile activation timestamp.
      - `audit` object — Recent wallet operation policy decisions for customer/support audit review.
        - `recentEvaluations` object[], required — Recent wallet operations and policy decisions for this wallet.
          - `walletOperationId` string, required — Wallet operation record ID created before policy evaluation.
          - `policyEvaluationId` string, required — Policy evaluation record ID.
          - `operationFamily` string, required — Normalized wallet operation family. Historical rows may carry retired families.
          - `operationType` string, required — Normalized wallet operation type. Historical rows may carry retired types.
          - `asset` string, nullable, required — Asset symbol or mint when available.
          - `amount` string, nullable, required — Operation amount when available.
          - `destination` string, nullable, required — Destination address or counterparty when available.
          - `status` 'created' | 'evaluated' | 'pending_approval' | 'executing' | 'completed' | 'failed' | 'canceled', required — Current wallet operation status.
          - `decision` 'allow' | 'deny' | 'approval_required' | 'provider_approval_required' | 'review' | 'not_evaluated', required — Policy decision for this operation.
          - `reasonCode` string, required — Stable reason code explaining the decision.
          - `reason` string, nullable, required — Human-readable decision reason.
          - `requiresApproval` boolean, required — Whether the decision paused execution for approval.
          - `approvalRequestId` string, nullable, required — Approval request ID when the operation requires approval.
          - `operationCreatedAt` string, date-time, required — Wallet operation creation timestamp.
          - `operationUpdatedAt` string, date-time, required — Wallet operation last update timestamp.
          - `evaluatedAt` string, date-time, required — Policy evaluation timestamp.
  - `meta` object, required — Response metadata.
    - `requestId` string, required — Request identifier for tracing.
    - `timestamp` string, date-time, required — ISO 8601 timestamp.

## Other responses

- `401` — Error
- `403` — Error
- `404` — Error
- `500` — Error

---

[API](https://skmtc.net/solana/apis/solana-developer-platform-api.md) · [All operations](https://skmtc.net/solana/apis/solana-developer-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/solana/solana-developer-platform-api/revisions/672b1916ba61/schema)
