# Check if employee has permission on wallet

> 🔒 **Private label — [contact sales](mailto:sales@boyahq.com).** Requires a private-label entitlement on your API client.

Check if employee has permission on wallet

Endpoint: POST /wallet-policies/check-access
Version: 2.0.0
Security: oauth2ClientCredentials

## Header parameters:

  - `business_id` (string, required)
    Business identifier for the request

## Request fields (application/json):

  - `employee_id` (string, required)
    Employee ID to check access for

  - `wallet_id` (string, required)
    Wallet ID to check access on

  - `permission` (string, required)
    Permission slug to check
    Example: initiate-transfer

## Response 200 fields (application/json):

  - `allowed` (boolean, required)
    Whether access is allowed

  - `policy` (object)
    Policy used for the check (if allowed)

  - `policy._id` (string, required)
    Policy MongoDB ID

  - `policy.subject_type` (string, required)
    Subject type
    Enum: "EMPLOYEE", "BUSINESS", "EXTERNAL"

  - `policy.employee_id` (object)
    Employee reference (populated)

  - `policy.business_id` (string)
    Business ID

  - `policy.external_ref` (string)
    External reference

  - `policy.wallet_id` (string, required)
    Wallet ID

  - `policy.permissions` (array, required)
    Granted permissions

  - `policy.limits` (object)
    Transaction limits

  - `policy.limits.per_transaction` (object)
    Per-transaction limit

  - `policy.limits.daily_total` (object)
    Daily total limit

  - `policy.limits.monthly_total` (object)
    Monthly total limit

  - `policy.limits.currency` (string)
    Currency code

  - `policy.thresholds` (object)
    Approval thresholds

  - `policy.thresholds.approval_required_above` (object)
    Amount above which approval is required

  - `policy.thresholds.auto_flag_above` (object)
    Amount above which transaction is auto-flagged

  - `policy.restrictions` (object)
    Display restrictions

  - `policy.restrictions.mask_balance` (boolean)
    Whether balance is masked

  - `policy.restrictions.mask_transaction_amounts` (boolean)
    Whether transaction amounts are masked

  - `policy.restrictions.max_transaction_history_days` (number)
    Maximum transaction history days accessible

  - `policy.status` (string, required)
    Policy status
    Enum: "ACTIVE", "SUSPENDED", "EXPIRED", "REVOKED"

  - `policy.valid_from` (string)
    Policy start date

  - `policy.valid_until` (string)
    Policy expiry date

  - `policy.granted_by` (object)
    Granter employee reference

  - `policy.revoked_by` (string)
    Revoker employee ID

  - `policy.revoked_at` (string)
    Revocation timestamp

  - `policy.revoke_reason` (string)
    Revocation reason

  - `policy.label` (string)
    Human-friendly label

  - `policy.notes` (string)
    Additional notes

  - `policy.createdAt` (string, required)
    Creation timestamp

  - `policy.updatedAt` (string, required)
    Last update timestamp

  - `reason` (string, required)
    Reason for the result
    Example: OK

