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

Open in Claude
Open in ChatGPT

List paykeys

get/v1/paykeys

Returns a list of paykeys associated with a Straddle account. This endpoint supports advanced sorting and filtering options.

Query ParametersExpand Collapse
customer_id: optional string

Filter paykeys by related customer ID.

formatuuid
page_number: optional number

Page number for paginated results. Starts at 1.

formatint32
page_size: optional number

Number of results per page. Maximum: 1000.

formatint32
sort_by: optional "institution_name" or "expires_at" or "created_at"
Accepts one of the following:
"institution_name"
"expires_at"
"created_at"
sort_order: optional "asc" or "desc"
Accepts one of the following:
"asc"
"desc"
source: optional array of "bank_account" or "straddle" or "mx" or 3 more

Filter paykeys by their source.

Accepts one of the following:
"bank_account"
"straddle"
"mx"
"plaid"
"tan"
"quiltt"
status: optional array of "pending" or "active" or "inactive" or 2 more

Filter paykeys by their current status.

Accepts one of the following:
"pending"
"active"
"inactive"
"rejected"
"review"
Header ParametersExpand Collapse
"Correlation-Id": optional string
"Request-Id": optional string
"Straddle-Account-Id": optional string
ReturnsExpand Collapse
PaykeySummaryPagedV1 = object { data, meta, response_type }
data: array of object { id, config, created_at, 11 more }
id: string

Unique identifier for the paykey.

formatuuid
config: object { processing_method, sandbox_outcome }
processing_method: optional "inline" or "background" or "skip"
Accepts one of the following:
"inline"
"background"
"skip"
sandbox_outcome: optional "standard" or "active" or "rejected" or "review"
Accepts one of the following:
"standard"
"active"
"rejected"
"review"
created_at: string

Timestamp of when the paykey was created.

formatdate-time
label: string

Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI

paykey: string

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

source: "bank_account" or "straddle" or "mx" or 3 more
Accepts one of the following:
"bank_account"
"straddle"
"mx"
"plaid"
"tan"
"quiltt"
status: "pending" or "active" or "inactive" or 2 more
Accepts one of the following:
"pending"
"active"
"inactive"
"rejected"
"review"
updated_at: string

Timestamp of the most recent update to the paykey.

formatdate-time
bank_data: optional object { account_number, account_type, routing_number }
account_number: string

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

account_type: "checking" or "savings"
Accepts one of the following:
"checking"
"savings"
routing_number: string

The routing number of the bank account.

minLength9
maxLength9
customer_id: optional string

Unique identifier of the related customer object.

formatuuid
expires_at: optional string

Expiration date and time of the paykey, if applicable.

formatdate-time
external_id: optional string

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

institution_name: optional string

Name of the financial institution.

status_details: optional object { changed_at, message, reason, 2 more }
changed_at: string

The time the status change occurred.

formatdate-time
message: string

A human-readable description of the current status.

reason: "insufficient_funds" or "closed_bank_account" or "invalid_bank_account" or 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: "watchtower" or "bank_decline" or "customer_dispute" or 2 more
Accepts one of the following:
"watchtower"
"bank_decline"
"customer_dispute"
"user_action"
"system"
code: optional string

The status code if applicable.

meta: object { api_request_id, api_request_timestamp, max_page_size, 6 more }
api_request_id: string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: number

Maximum allowed page size for this endpoint.

formatint32
page_number: number

Page number for paginated results.

formatint32
page_size: number

Number of items per page in this response.

formatint32
sort_by: string

The field that the results were sorted by.

sort_order: "asc" or "desc"
Accepts one of the following:
"asc"
"desc"
total_items: number
total_pages: number

The number of pages available.

formatint32
response_type: "object" or "array" or "error" or "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"
List paykeys
curl https://sandbox.straddle.com/v1/paykeys \
    -H "Authorization: Bearer $STRADDLE_API_KEY"
{
  "data": [
    {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "config": {
        "processing_method": "inline",
        "sandbox_outcome": "standard"
      },
      "created_at": "2019-12-27T18:11:19.117Z",
      "label": "Bank of America ****1234",
      "paykey": "paykey",
      "source": "bank_account",
      "status": "pending",
      "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",
      "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",
    "max_page_size": 0,
    "page_number": 0,
    "page_size": 0,
    "sort_by": "sort_by",
    "sort_order": "asc",
    "total_items": 0,
    "total_pages": 0
  },
  "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": "Bank of America ****1234",
      "paykey": "paykey",
      "source": "bank_account",
      "status": "pending",
      "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",
      "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",
    "max_page_size": 0,
    "page_number": 0,
    "page_size": 0,
    "sort_by": "sort_by",
    "sort_order": "asc",
    "total_items": 0,
    "total_pages": 0
  },
  "response_type": "object"
}