---
title: "Get paykey review details"
method: GET
path: "/v1/paykeys/{id}/review"
tags: ["Paykeys"]
---

# Get paykey review details

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

Get additional details about a paykey.

## Path parameters

- `id` string, uuid, required

## Headers

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

## Response `200`

OK

- PaykeyReviewV1ItemResponse
  - `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` PaykeyReviewV1, required
    - `paykey_details` PaykeyV1, 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` PaykeyBankDetailsV1
        - `routing_number` string, required — The routing number of the bank account.
        - `account_number` string, required — Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value.
        - `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.
      - `unblock_eligible` boolean, nullable — Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked.
    - `verification_details` PaykeyVerificationDetailsV1
      - `id` string, uuid, required — Unique identifier for the verification details.
      - `decision` 'accept' | 'reject' | 'review', required
      - `messages` object, required — Dictionary of all messages from the paykey verification process.
      - `breakdown` PaykeyVerificationBreakdownV1, required
        - `name_match` AccountNameMatchDetailsV1
          - `names_on_account` string[], nullable
          - `matched_name` string, nullable
          - `customer_name` string, nullable
          - `correlation_score` number, double, nullable
          - `decision` 'accept' | 'reject' | 'review', required
          - `reason` string, nullable
          - `codes` string[], required
        - `account_validation` AccountValidationDetailsV1
          - `decision` 'accept' | 'reject' | 'review', required
          - `reason` string, nullable
          - `codes` string[], required
      - `created_at` string, date-time, required — Timestamp of when the verification was initiated.
      - `updated_at` string, date-time, required — Timestamp of the most recent update to the verification details.

## 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/versions/6e13cd88cda9/schema)
