---
title: "Unmask a paykey"
method: GET
path: "/v1/paykeys/{id}/unmasked"
tags: ["Paykeys"]
---

# Unmask a paykey

`GET /v1/paykeys/{id}/unmasked`

Retrieves the unmasked details of an existing paykey. Supply the unique paykey `id` and Straddle will return the corresponding paykey record, including the unmasked bank account details. This endpoint needs to be enabled by Straddle for your account and should only be used when absolutely necessary.

## Path parameters

- `id` string, uuid, required

## Headers

- `Straddle-Account-Id` string, uuid
- `Request-Id` string
- `Correlation-Id` string

## Response `200`

OK

- PayKeyUnmaskedV1ItemResponse
  - `meta` ResponseMetadata, required — Metadata about the API request, including an identifier and timestamp.
    - `api_request_id` string, uuid, required — Unique identifier for this API request, useful for troubleshooting.
    - `api_request_timestamp` string, date-time, required — Timestamp for this API request, useful for troubleshooting.
  - `response_type` 'object' | 'array' | 'error' | 'none', required — Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned.
  - `data` PayKeyUnmaskedV1, required
    - `id` string, uuid, required — Unique identifier for the paykey.
    - `customer_id` string, uuid, nullable — Unique identifier of the related customer object.
    - `label` string, required — Human-readable label used to represent this paykey in a UI.
    - `source` 'bank_account' | 'straddle' | 'mx' | 'plaid' | 'tan' | 'quiltt', required
    - `institution_name` string, nullable — Name of the financial institution.
    - `status` 'pending' | 'active' | 'inactive' | 'rejected' | 'review' | 'blocked', required
    - `status_details` StatusDetailsV1
      - `message` string, required — A human-readable description of the current status.
      - `reason` 'insufficient_funds' | 'closed_bank_account' | 'invalid_bank_account' | 'invalid_routing' | 'disputed' | 'payment_stopped' | 'owner_deceased' | 'frozen_bank_account' | 'risk_review' | 'fraudulent' | 'duplicate_entry' | 'invalid_paykey' | 'payment_blocked' | 'amount_too_large' | 'too_many_attempts' | 'internal_system_error' | 'user_request' | 'ok' | 'other_network_return' | 'payout_refused' | 'cancel_request' | 'failed_verification' | 'require_review' | 'blocked_by_system' | 'watchtower_review' | 'validating' | 'auto_hold', required
      - `source` 'watchtower' | 'bank_decline' | 'customer_dispute' | 'user_action' | 'system', required
      - `code` string, nullable — The status code if applicable.
      - `changed_at` string, date-time, required — The time the status change occurred.
    - `expires_at` string, date-time, nullable — Expiration date and time of the paykey, if applicable.
    - `created_at` string, date-time, required — Timestamp of when the paykey was created.
    - `updated_at` string, date-time, required — Timestamp of the most recent update to the paykey.
    - `paykey` string, required — The tokenized paykey value. This value is used to create payments and should be stored securely.
    - `bank_data` PaykeyBankDetailsUnmaskedV1
      - `routing_number` string, required — The routing number of the bank account.
      - `account_number` string, required — The bank account number
      - `account_type` 'checking' | 'savings', required
    - `metadata` object, nullable — Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format.
    - `config` PaykeyConfigurationV1, required
      - `sandbox_outcome` 'standard' | 'active' | 'rejected' | 'review'
      - `processing_method` 'inline' | 'background' | 'skip'
    - `balance` PaykeyBalanceDetailsV1
      - `account_balance` integer, nullable — Account Balance when last retrieved
      - `updated_at` string, date-time, nullable — Last time account balance was updated.
      - `status` 'pending' | 'completed' | 'failed', required
    - `external_id` string, nullable — Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Failed
- `500` — Server Error

---

[API](https://skmtc.net/straddleio/apis/straddle-api.md) · [All operations](https://skmtc.net/straddleio/apis/straddle-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/straddleio/straddle-api/revisions/6e13cd88cda9/schema)
