Skip to content
  • Auto
  • Light
  • Dark
Get started
View as Markdown
Copy Markdown

Open in Claude
Open in ChatGPT

Get paykey review details

paykeys.review.get(strid, ReviewGetParams**kwargs) -> ReviewGetResponse
get/v1/paykeys/{id}/review

Get additional details about a paykey.

ParametersExpand Collapse
id: str
correlation_id: Optional[str]
request_id: Optional[str]
straddle_account_id: Optional[str]
ReturnsExpand Collapse
class ReviewGetResponse:
data: Data
paykey_details: DataPaykeyDetails
id: str

Unique identifier for the paykey.

formatuuid
config: DataPaykeyDetailsConfig
processing_method: Optional[Literal["inline", "background", "skip"]]
Accepts one of the following:
"inline"
"background"
"skip"
sandbox_outcome: Optional[Literal["standard", "active", "rejected", "review"]]
Accepts one of the following:
"standard"
"active"
"rejected"
"review"
created_at: datetime

Timestamp of when the paykey was created.

formatdate-time
label: str

Human-readable label used to represent this paykey in a UI.

paykey: str

The tokenized paykey value. This value is used to create payments and should be stored securely.

source: Literal["bank_account", "straddle", "mx", 3 more]
Accepts one of the following:
"bank_account"
"straddle"
"mx"
"plaid"
"tan"
"quiltt"
status: Literal["pending", "active", "inactive", 2 more]
Accepts one of the following:
"pending"
"active"
"inactive"
"rejected"
"review"
updated_at: datetime

Timestamp of the most recent update to the paykey.

formatdate-time
balance: Optional[DataPaykeyDetailsBalance]
status: Literal["pending", "completed", "failed"]
Accepts one of the following:
"pending"
"completed"
"failed"
account_balance: Optional[int]

Account Balance when last retrieved

formatint32
updated_at: Optional[datetime]

Last time account balance was updated.

formatdate-time
bank_data: Optional[DataPaykeyDetailsBankData]
account_number: str

Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value.

account_type: Literal["checking", "savings"]
Accepts one of the following:
"checking"
"savings"
routing_number: str

The routing number of the bank account.

minLength9
maxLength9
customer_id: Optional[str]

Unique identifier of the related customer object.

formatuuid
expires_at: Optional[datetime]

Expiration date and time of the paykey, if applicable.

formatdate-time
external_id: Optional[str]

Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems.

institution_name: Optional[str]

Name of the financial institution.

metadata: Optional[Dict[str, str]]

Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format.

status_details: Optional[DataPaykeyDetailsStatusDetails]
changed_at: datetime

The time the status change occurred.

formatdate-time
message: str

A human-readable description of the current status.

reason: Literal["insufficient_funds", "closed_bank_account", "invalid_bank_account", 17 more]
Accepts one of the following:
"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"
source: Literal["watchtower", "bank_decline", "customer_dispute", 2 more]
Accepts one of the following:
"watchtower"
"bank_decline"
"customer_dispute"
"user_action"
"system"
code: Optional[str]

The status code if applicable.

verification_details: Optional[DataVerificationDetails]
id: str

Unique identifier for the verification details.

formatuuid
breakdown: DataVerificationDetailsBreakdown
account_validation: Optional[DataVerificationDetailsBreakdownAccountValidation]
codes: List[str]
decision: Literal["accept", "reject", "review"]
Accepts one of the following:
"accept"
"reject"
"review"
reason: Optional[str]
name_match: Optional[DataVerificationDetailsBreakdownNameMatch]
codes: List[str]
decision: Literal["accept", "reject", "review"]
Accepts one of the following:
"accept"
"reject"
"review"
correlation_score: Optional[float]
customer_name: Optional[str]
matched_name: Optional[str]
names_on_account: Optional[List[str]]
reason: Optional[str]
created_at: datetime

Timestamp of when the verification was initiated.

formatdate-time
decision: Literal["accept", "reject", "review"]
Accepts one of the following:
"accept"
"reject"
"review"
messages: Dict[str, str]

Dictionary of all messages from the paykey verification process.

updated_at: datetime

Timestamp of the most recent update to the verification details.

formatdate-time

Metadata about the API request, including an identifier and timestamp.

api_request_id: str

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: datetime

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: Literal["object", "array", "error", "none"]

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.
Accepts one of the following:
"object"
"array"
"error"
"none"
Get paykey review details
from straddle import Straddle

client = Straddle(
    api_key="My API Key",
)
review = client.paykeys.review.get(
    id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(review.data)
{
  "data": {
    "paykey_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "config": {
        "processing_method": "inline",
        "sandbox_outcome": "standard"
      },
      "created_at": "2019-12-27T18:11:19.117Z",
      "label": "label",
      "paykey": "paykey",
      "source": "bank_account",
      "status": "pending",
      "updated_at": "2019-12-27T18:11:19.117Z",
      "balance": {
        "status": "pending",
        "account_balance": 0,
        "updated_at": "2019-12-27T18:11:19.117Z"
      },
      "bank_data": {
        "account_number": "****1234",
        "account_type": "checking",
        "routing_number": "021000021"
      },
      "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "expires_at": "2019-12-27T18:11:19.117Z",
      "external_id": "external_id",
      "institution_name": "Bank of America",
      "metadata": {
        "foo": "string"
      },
      "status_details": {
        "changed_at": "2019-12-27T18:11:19.117Z",
        "message": "Bank account sucesfully validated",
        "reason": "insufficient_funds",
        "source": "watchtower",
        "code": "code"
      }
    },
    "verification_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "breakdown": {
        "account_validation": {
          "codes": [
            "string"
          ],
          "decision": "accept",
          "reason": "reason"
        },
        "name_match": {
          "codes": [
            "string"
          ],
          "decision": "accept",
          "correlation_score": 0,
          "customer_name": "customer_name",
          "matched_name": "matched_name",
          "names_on_account": [
            "string"
          ],
          "reason": "reason"
        }
      },
      "created_at": "2019-12-27T18:11:19.117Z",
      "decision": "accept",
      "messages": {
        "foo": "string"
      },
      "updated_at": "2019-12-27T18:11:19.117Z"
    }
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}
Returns Examples
{
  "data": {
    "paykey_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "config": {
        "processing_method": "inline",
        "sandbox_outcome": "standard"
      },
      "created_at": "2019-12-27T18:11:19.117Z",
      "label": "label",
      "paykey": "paykey",
      "source": "bank_account",
      "status": "pending",
      "updated_at": "2019-12-27T18:11:19.117Z",
      "balance": {
        "status": "pending",
        "account_balance": 0,
        "updated_at": "2019-12-27T18:11:19.117Z"
      },
      "bank_data": {
        "account_number": "****1234",
        "account_type": "checking",
        "routing_number": "021000021"
      },
      "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "expires_at": "2019-12-27T18:11:19.117Z",
      "external_id": "external_id",
      "institution_name": "Bank of America",
      "metadata": {
        "foo": "string"
      },
      "status_details": {
        "changed_at": "2019-12-27T18:11:19.117Z",
        "message": "Bank account sucesfully validated",
        "reason": "insufficient_funds",
        "source": "watchtower",
        "code": "code"
      }
    },
    "verification_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "breakdown": {
        "account_validation": {
          "codes": [
            "string"
          ],
          "decision": "accept",
          "reason": "reason"
        },
        "name_match": {
          "codes": [
            "string"
          ],
          "decision": "accept",
          "correlation_score": 0,
          "customer_name": "customer_name",
          "matched_name": "matched_name",
          "names_on_account": [
            "string"
          ],
          "reason": "reason"
        }
      },
      "created_at": "2019-12-27T18:11:19.117Z",
      "decision": "accept",
      "messages": {
        "foo": "string"
      },
      "updated_at": "2019-12-27T18:11:19.117Z"
    }
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}