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

Open in Claude
Open in ChatGPT

Paykeys

Lookup a paykey
paykeys.get(strid, PaykeyGetParams**kwargs) -> PaykeyV1
get/v1/paykeys/{id}
Unmask a paykey
paykeys.unmasked(strid, PaykeyUnmaskedParams**kwargs) -> PaykeyUnmaskedV1
get/v1/paykeys/{id}/unmasked
List paykeys
paykeys.list(PaykeyListParams**kwargs) -> SyncPageNumberSchema[Data]
get/v1/paykeys
Retrieve an unmasked paykey
paykeys.reveal(strid, PaykeyRevealParams**kwargs) -> PaykeyRevealResponse
get/v1/paykeys/{id}/reveal
Cancel
paykeys.cancel(strid, PaykeyCancelParams**kwargs) -> PaykeyV1
put/v1/paykeys/{id}/cancel
Update a paykey's balance
paykeys.update_balance(strid, PaykeyUpdateBalanceParams**kwargs) -> PaykeyV1
put/v1/paykeys/{id}/refresh_balance
ModelsExpand Collapse
class PaykeySummaryPagedV1:
data: List[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 that combines the bank name and masked account number to help easility 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
bank_data: Optional[DataBankData]
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.

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.

meta: Meta
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
max_page_size: int

Maximum allowed page size for this endpoint.

formatint32
page_number: int

Page number for paginated results.

formatint32
page_size: int

Number of items per page in this response.

formatint32
sort_by: str

The field that the results were sorted by.

sort_order: Literal["asc", "desc"]
Accepts one of the following:
"asc"
"desc"
total_items: int
total_pages: int

The number of pages available.

formatint32
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"
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"
class PaykeyV1:
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

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[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"

PaykeysReview

Update a paykey's status
paykeys.review.decision(strid, ReviewDecisionParams**kwargs) -> PaykeyV1
patch/v1/paykeys/{id}/review
Get paykey review details
paykeys.review.get(strid, ReviewGetParams**kwargs) -> ReviewGetResponse
get/v1/paykeys/{id}/review
Update a paykey's identity review decision
paykeys.review.refresh_review(strid, ReviewRefreshReviewParams**kwargs) -> PaykeyV1
put/v1/paykeys/{id}/refresh_review