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

Open in Claude
Open in ChatGPT

Unmask a paykey

paykeys.unmasked(strid, PaykeyUnmaskedParams**kwargs) -> PaykeyUnmaskedV1
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.

ParametersExpand Collapse
id: str
correlation_id: Optional[str]
request_id: Optional[str]
straddle_account_id: Optional[str]
ReturnsExpand Collapse
class PaykeyUnmaskedV1:
data: Data
id: str

Unique identifier for the paykey.

formatuuid
config: DataConfig
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[DataBalance]
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[DataBankData]
account_number: str

The bank account number

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[DataStatusDetails]
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.

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"
Unmask a paykey
from straddle import Straddle

client = Straddle(
    api_key="My API Key",
)
paykey_unmasked_v1 = client.paykeys.unmasked(
    id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(paykey_unmasked_v1.data)
{
  "data": {
    "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": "123456789",
      "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"
    }
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}
Returns Examples
{
  "data": {
    "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": "123456789",
      "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"
    }
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}