Skip to main content
Your backend administers approval authority and reads permission state for its partner scope. These methods manage assignments, scopes, and settings permitted by an authored policy. They do not rewrite policy definitions or add approval stages; changing the rules requires the authoring and publication lifecycle. A server secret does not grant user consent, edit a user’s personal policy parameters, or submit a person’s approval decision. What you’ll learn: connect the REST SDK, assign roles and attributes, bind wallets to an authorization scope, configure allowed workflow settings, and inspect current state and history.

Connect your backend

Use ParaRestClient from @getpara/rest-sdk. Its permissions methods send your server secret in X-API-Key; the public application key and a user’s SDK session are different authentication boundaries.
Keep the secret on your backend. Authorize your application’s callers before forwarding administrative requests to Para. Follow REST setup for environments and authentication.

Assign roles and attributes

An authorization scope separates a set of assignments and approval configuration within your application. For example, each business using your product can have its own scope. The policy defines which roles or attributes qualify someone to approve or manage configuration; assignments connect authenticated Para users to those declarations. For a user with no existing assignment record, create the initial set with expectedRevision: 0:
Use names that match your policy. replaceUserApprovalAssignments replaces the whole set, rather than appending entries. To remove all assignments, submit assignments: [] with the current revision. To change a subset, read getUserApprovalAssignments and include the assignments you intend to retain. Only the partner backend can list other members with listAuthorizationScopeMembers. A signed-in client cannot use its own session to enumerate the scope or grant itself roles.

Bind a wallet to the scope

The wallet binding determines which scope supplies the assignments and configuration for approval evaluation. Set an initial binding with revision zero; use the existing binding’s revision when changing it.
Wallet access remains subject to the partner boundary. Binding a wallet does not transfer ownership or grant the backend access to a user’s signing session.

Configure declared approval settings

A policy can expose named configuration values for an approval requirement. The backend may change those values only within the policy’s declared constraints; it cannot replace the requirement with arbitrary JSON through these methods. Discover requirements, then read the effective configuration for one:
Use updateApprovalConfiguration(reference, { expectedRevision, values }) with the declared configuration names. Use revision zero for the first write, or the revision from the current configuration for an update. resetApprovalConfiguration(reference, expectedRevision) restores the policy defaults by writing an empty values map.
Revision checks prevent one administrator from silently overwriting another’s changes. On a conflict, read the current record and reconcile the intended update before submitting again.
A policy may also authorize authenticated configuration managers. Assigning a manager role is a backend operation; that user’s ability to change configuration is still limited by the policy. Neither path lets the backend change personal user-adjustable parameters.

Read state without acting for the user

For example, read consent and saved parameters for a known user and policy:
These reads are scoped to your partner and the requested subject. They do not grant consent or permission to write the user’s values. Approval cases expose workflow state; the backend does not receive a method to submit a human decision. Usage is a current snapshot, not a transaction preview or a reservation for a future transaction. The snapshot distinguishes committed and reserved spending and reports the applicable window and limit. Signing still evaluates the actual request.

Inspect resource histories

Use listUserPolicyParameterHistory, listUserApprovalAssignmentHistory, listWalletAuthorizationScopeHistory, and listApprovalConfigurationHistory for the corresponding revision records. Policy versions are available separately through listPartnerPolicyVersions. Follow returned pagination cursors where provided. Policy version history includes versions that are or were active; use the authoring tools to inspect drafts.

Enforce policies on app-owned wallets

Understand allowed, denied, and approval-required signing outcomes.

Integrate user consent

Let people consent and complete the required Portal interactions.

Policy JSON reference

Define selectors, conditions, approval requirements, and adjustable settings.

Permissions REST reference

Find the server-side methods, routes, and request contracts.