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

# Permissions hooks

> Query and mutation hooks for the permissions lifecycle

Import these hooks from `@getpara/react-sdk` or `@getpara/react-sdk-lite` inside your Para provider. They wrap the [core permissions methods](/v3/references/core/permissions/listpolicies) and retain the same authorization and Portal behavior.

## Query hooks

Query hooks take the same positional arguments as their core method. They return TanStack Query `UseQueryResult<Result, Error>` with `data`, `error`, `isPending`, and `refetch`. Public discovery runs when a client exists; other queries wait for a fully authenticated user.

```typescript theme={null}
import { useApplicablePolicies } from "@getpara/react-sdk";

const { data, isPending, error } = useApplicablePolicies({ walletId });
const policies = data?.policies;
```

<a id="listpolicies" />

### usePolicies

Lists publicly discoverable active policies for the application. Targeted user and wallet definitions are excluded.

```typescript theme={null}
usePolicies(): UseQueryResult<PermissionsV2PolicyListResponse, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listpolicies).

<a id="getpolicy" />

### usePolicy

Reads a publicly discoverable active policy and its authored defaults.

```typescript theme={null}
usePolicy(policyId: string): UseQueryResult<PermissionsV2PolicyResponse, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getpolicy).

<a id="listapplicablepolicies" />

### useApplicablePolicies

Lists active policies applicable to the signed-in user and selected wallet.

```typescript theme={null}
useApplicablePolicies(context: PermissionsV2WalletContext): UseQueryResult<PermissionsV2PolicyListResponse, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listapplicablepolicies).

<a id="getapplicablepolicy" />

### useApplicablePolicy

Reads an active policy applicable to the signed-in user and selected wallet.

```typescript theme={null}
useApplicablePolicy(policyId: string, context: PermissionsV2WalletContext): UseQueryResult<PermissionsV2PolicyResponse, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getapplicablepolicy).

<a id="listuserpolicyconsents" />

### useUserPolicyConsents

Lists consent requests and current consent state for the selected user wallet.

```typescript theme={null}
useUserPolicyConsents(context: PermissionsV2ConsentListContext): UseQueryResult<PermissionsV2DelegationConsentDiscoveryResponse, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listuserpolicyconsents).

<a id="getuserpolicyconsent" />

### useUserPolicyConsent

Reads the selected policy’s current consent state for a user wallet.

```typescript theme={null}
useUserPolicyConsent(policyId: string, context: PermissionsV2WalletContext): UseQueryResult<PermissionsV2DelegationConsentView, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getuserpolicyconsent).

<a id="listuseradjustablepolicies" />

### useUserAdjustablePolicies

Lists policies with adjustable parameters available to the user.

```typescript theme={null}
useUserAdjustablePolicies(): UseQueryResult<PermissionsV2UserAdjustablePolicyListResponse, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listuseradjustablepolicies).

<a id="getuserpolicyparameters" />

### useUserPolicyParameters

Reads parameter declarations, saved values, and the current settings revision.

```typescript theme={null}
useUserPolicyParameters(policyId: string): UseQueryResult<PermissionsV2UserParameterView, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getuserpolicyparameters).

<a id="listuserpolicyparameterhistory" />

### useUserPolicyParameterHistory

Lists saved parameter revisions for the user and policy.

```typescript theme={null}
useUserPolicyParameterHistory(policyId: string, options?: PermissionsV2HistoryOptions): UseQueryResult<PermissionsV2UserParameterHistory, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listuserpolicyparameterhistory).

<a id="listconfigurableapprovalrequirements" />

### useConfigurableApprovalRequirements

Lists approval requirements that expose configuration in an authorization scope.

```typescript theme={null}
useConfigurableApprovalRequirements(authorizationScopeId: string): UseQueryResult<PermissionsV2ConditionalRequirementList, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listconfigurableapprovalrequirements).

<a id="getconfigurableapprovalrequirement" />

### useConfigurableApprovalRequirement

Reads a configurable approval requirement in a specific policy version and authorization scope.

```typescript theme={null}
useConfigurableApprovalRequirement(reference: PermissionsV2ApprovalRequirementReference): UseQueryResult<PermissionsV2ConditionalRequirementView, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getconfigurableapprovalrequirement).

<a id="getapprovalconfiguration" />

### useApprovalConfiguration

Reads the stored configuration and revision for an approval requirement.

```typescript theme={null}
useApprovalConfiguration(reference: PermissionsV2ApprovalRequirementReference): UseQueryResult<PermissionsV2AuthorizationConfigurationView, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getapprovalconfiguration).

<a id="geteffectiveapprovalconfiguration" />

### useEffectiveApprovalConfiguration

Reads the approval requirement after applying its current configuration.

```typescript theme={null}
useEffectiveApprovalConfiguration(reference: PermissionsV2ApprovalRequirementReference): UseQueryResult<PermissionsV2EffectiveAuthorizationConfiguration, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/geteffectiveapprovalconfiguration).

<a id="listapprovalconfigurationhistory" />

### useApprovalConfigurationHistory

Lists configuration revisions for an approval requirement.

```typescript theme={null}
useApprovalConfigurationHistory(reference: PermissionsV2ApprovalRequirementReference): UseQueryResult<PermissionsV2AuthorizationConfigurationHistory, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listapprovalconfigurationhistory).

<a id="getuserapprovalassignments" />

### useUserApprovalAssignments

Reads roles and attributes assigned to a user in an authorization scope.

```typescript theme={null}
useUserApprovalAssignments(authorizationScopeId: string): UseQueryResult<PermissionsV2AuthoritySetView, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getuserapprovalassignments).

<a id="getuserapprovalcapabilities" />

### useUserApprovalCapabilities

Lists requirements the signed-in user is authorized to configure in an authorization scope.

```typescript theme={null}
useUserApprovalCapabilities(authorizationScopeId: string): UseQueryResult<PermissionsV2AuthorizationScopeCapabilities, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getuserapprovalcapabilities).

<a id="listaccessibleapprovalcases" />

### useAccessibleApprovalCases

Lists approval cases accessible to the signed-in approver.

```typescript theme={null}
useAccessibleApprovalCases(): UseQueryResult<{ cases: PermissionsV2ConditionalApprovalCaseView[] }, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listaccessibleapprovalcases).

<a id="getaccessibleapprovalcase" />

### useAccessibleApprovalCase

Reads an approval case accessible to the signed-in approver.

```typescript theme={null}
useAccessibleApprovalCase(caseId: string): UseQueryResult<PermissionsV2ConditionalApprovalCaseView, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getaccessibleapprovalcase).

<a id="listinitiatedapprovalcases" />

### useInitiatedApprovalCases

Lists approval cases initiated by the signed-in user.

```typescript theme={null}
useInitiatedApprovalCases(options?: PermissionsV2CaseListOptions): UseQueryResult<PermissionsV2ConditionalApprovalCaseList, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/listinitiatedapprovalcases).

<a id="getinitiatedapprovalcase" />

### useInitiatedApprovalCase

Reads an approval case initiated by the signed-in user, without granting approval authority.

```typescript theme={null}
useInitiatedApprovalCase(caseId: string): UseQueryResult<PermissionsV2ConditionalApprovalCaseView, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getinitiatedapprovalcase).

<a id="getapprovalsigningpayload" />

### useApprovalSigningPayload

Reads the canonical signing payload for a participant eligible to sign in the current stage.

```typescript theme={null}
useApprovalSigningPayload(caseId: string): UseQueryResult<PermissionsV2ApprovalSigningPayload, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getapprovalsigningpayload).

<a id="getapprovalsignatures" />

### useApprovalSignatures

Reads the completed signature bundle for the authenticated collection initiator.

```typescript theme={null}
useApprovalSignatures(caseId: string): UseQueryResult<PermissionsV2ApprovalSignatures, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getapprovalsignatures).

<a id="getuserpolicyusage" />

### useUserPolicyUsage

Reads a current spending-usage snapshot for a policy and user wallet.

```typescript theme={null}
useUserPolicyUsage(policyId: string, context: PermissionsV2UsageContext): UseQueryResult<PermissionsV2PolicyUsage, Error>
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getuserpolicyusage).

## Mutation hooks

Mutation hooks take no arguments. The returned functions are named after the core method: `method(variables)` starts a mutation and `methodAsync(variables)` returns its promise. Results also include `data`, `error`, `isPending`, and `reset`. Successful writes invalidate the current user’s permissions queries; generating a Portal URL does not.

```typescript theme={null}
import { useGetPolicyConsentUrl } from "@getpara/react-sdk";

const { getPolicyConsentUrlAsync, isPending } = useGetPolicyConsentUrl();
const url = await getPolicyConsentUrlAsync({ walletId, policyId });
// Open the returned URL from your application.
```

<a id="updateuserpolicyparameters" />

### useUpdateUserPolicyParameters

Saves the signed-in user’s parameter values against the current policy version and settings revision.

```typescript theme={null}
const { updateUserPolicyParameters, updateUserPolicyParametersAsync, data, error, isPending, reset } = useUpdateUserPolicyParameters();
// Mutation variables: { policyId: string; body: PermissionsV2UserParameterSave }
// updateUserPolicyParametersAsync returns Promise<PermissionsV2UserParameterView>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/updateuserpolicyparameters).

<a id="resetuserpolicyparameters" />

### useResetUserPolicyParameters

Resets the signed-in user’s parameter values to the current policy defaults.

```typescript theme={null}
const { resetUserPolicyParameters, resetUserPolicyParametersAsync, data, error, isPending, reset } = useResetUserPolicyParameters();
// Mutation variables: { policyId: string; body: PermissionsV2UserParameterReset }
// resetUserPolicyParametersAsync returns Promise<PermissionsV2UserParameterView>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/resetuserpolicyparameters).

<a id="updateapprovalconfiguration" />

### useUpdateApprovalConfiguration

Updates the configurable values explicitly permitted by an approval requirement.

```typescript theme={null}
const { updateApprovalConfiguration, updateApprovalConfigurationAsync, data, error, isPending, reset } = useUpdateApprovalConfiguration();
// Mutation variables: { reference: PermissionsV2ApprovalRequirementReference; body: PermissionsV2AuthorizationConfigurationWrite }
// updateApprovalConfigurationAsync returns Promise<PermissionsV2AuthorizationConfigurationView>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/updateapprovalconfiguration).

<a id="resetapprovalconfiguration" />

### useResetApprovalConfiguration

Clears configured overrides and restores the requirement’s defaults.

```typescript theme={null}
const { resetApprovalConfiguration, resetApprovalConfigurationAsync, data, error, isPending, reset } = useResetApprovalConfiguration();
// Mutation variables: { reference: PermissionsV2ApprovalRequirementReference; expectedRevision: number }
// resetApprovalConfigurationAsync returns Promise<PermissionsV2AuthorizationConfigurationView>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/resetapprovalconfiguration).

<a id="approveapprovalcase" />

### useApproveApprovalCase

Records an authenticated approval from the signed-in eligible approver.

```typescript theme={null}
const { approveApprovalCase, approveApprovalCaseAsync, data, error, isPending, reset } = useApproveApprovalCase();
// Mutation variables: string
// approveApprovalCaseAsync returns Promise<PermissionsV2ConditionalApprovalCaseView>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/approveapprovalcase).

<a id="rejectapprovalcase" />

### useRejectApprovalCase

Records a rejection from the signed-in eligible approver.

```typescript theme={null}
const { rejectApprovalCase, rejectApprovalCaseAsync, data, error, isPending, reset } = useRejectApprovalCase();
// Mutation variables: string
// rejectApprovalCaseAsync returns Promise<PermissionsV2ConditionalApprovalCaseView>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/rejectapprovalcase).

<a id="createapprovalsignaturecollection" />

### useCreateApprovalSignatureCollection

Creates a policy-governed signature collection for a transaction.

```typescript theme={null}
const { createApprovalSignatureCollection, createApprovalSignatureCollectionAsync, data, error, isPending, reset } = useCreateApprovalSignatureCollection();
// Mutation variables: PermissionsV2TransactionSignatureCollection
// createApprovalSignatureCollectionAsync returns Promise<PermissionsV2ApprovalSignatureCollectionResult>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/createapprovalsignaturecollection).

<a id="submitapprovalsignature" />

### useSubmitApprovalSignature

Submits a signature and signer wallet for backend verification and collection.

```typescript theme={null}
const { submitApprovalSignature, submitApprovalSignatureAsync, data, error, isPending, reset } = useSubmitApprovalSignature();
// Mutation variables: { caseId: string; body: PermissionsV2ConditionalApprovalSignature }
// submitApprovalSignatureAsync returns Promise<PermissionsV2ConditionalApprovalCaseView>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/submitapprovalsignature).

<a id="signapprovaltransaction" />

### useSignApprovalTransaction

Fetches the case’s canonical signing payload, signs with the selected wallet, and submits the signature.

```typescript theme={null}
const { signApprovalTransaction, signApprovalTransactionAsync, data, error, isPending, reset } = useSignApprovalTransaction();
// Mutation variables: SignApprovalTransactionParams
// signApprovalTransactionAsync returns Promise<PermissionsV2ConditionalApprovalCaseView>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/signapprovaltransaction).

<a id="getpolicyconsenturl" />

### useGetPolicyConsentUrl

Creates a Portal URL for policy consent without first submitting a transaction.

```typescript theme={null}
const { getPolicyConsentUrl, getPolicyConsentUrlAsync, data, error, isPending, reset } = useGetPolicyConsentUrl();
// Mutation variables: { walletId: string; policyId: string }
// getPolicyConsentUrlAsync returns Promise<string>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getpolicyconsenturl).

<a id="getapprovalcasereviewurl" />

### useGetApprovalCaseReviewUrl

Creates a Portal URL to review an approval case accessible to the signed-in approver.

```typescript theme={null}
const { getApprovalCaseReviewUrl, getApprovalCaseReviewUrlAsync, data, error, isPending, reset } = useGetApprovalCaseReviewUrl();
// Mutation variables: { caseId: string }
// getApprovalCaseReviewUrlAsync returns Promise<string>.
```

[Arguments, result, and access requirements](/v3/references/core/permissions/getapprovalcasereviewurl).
