Skip to main content
Paykeys are a cornerstone of Straddle’s Pay by Bank stack. They are secure tokens that represent a customer’s verified identity and their bank account. The creation of a Paykey involves advanced identity matching through Straddle’s proprietary name matching algorithm (WALDO). This algorithm compares the customer’s known identity (obtained via Straddle ID) with the account ownership details retrieved from the customer’s financial institution through open banking. This ensures that the individual initiating the payment is the legitimate owner of the bank account, significantly reducing the risk of fraud. This guide explores how Paykeys work, the security measures in place, and how they integrate with other components of the Straddle ecosystem to facilitate secure payments.

Real-Time Identity Matching

Verifies that the customer connecting the bank account is its legitimate owner

Advanced Data Handling

Manages variations in PII, such as typos, nicknames, and cultural naming conventions

Fraud Detection

Identifies and prevents potential fraudulent activities before they occur.

Always Compliant

Embeds regulatory compliance checks into the bank verification process

How Bridge Creates Paykeys

Bridge is Straddle’s connectivity platform that securely links customers’ bank accounts to your application. When a customer connects their bank account through Bridge, a Paykey is generated to securely represent this connection. Here’s how the process works:
1

Customer Identity Verification

Before connecting a bank account, the customer is onboarded and their identity is verified using Straddle ID. This ensures compliance with KYC (Know Your Customer) and AML (Anti-Money Laundering) regulations.
2

Bank Account Connection via Bridge

The customer connects their bank account using the Bridge Widget, an embeddable interface within your application.
Alternatively, Bridge accepts existing tokens from providers like Plaid, MX, or Finicity, leveraging customers’ pre-existing bank connections.
Paykeys name matching is also possible with manual bank entry.
3

Identity Matching with WALDO

is Bridge’s proprietary algorithm for verifying bank account ownership.

Data Comparison

WALDO compares the customer’s verified identity with the bank account ownership details

Handling Variations

The algorithm accounts for minor discrepancies, such as nicknames, middle names, typos, and cultural naming conventions.

Fraud Prevention

Prevent fraudulent activities and unauthorized access to bank accounts.

Real-Time Processing

The verification occurs instantly in the API response
4

Paykey Generation and Status Assignment

A Universally Unique Identifier (UUID) is generated to represent the link between the customer and their bank account.
The UUID is hashed using a cryptographic hash function (BLAKE3) to ensure it cannot be reverse-engineered. The hashed value is encoded (e.g., Base64 or URL-safe encoding) to produce the Paykey.
The result is a secure, unique token (the Paykey) that represents the customer-bank account linkage.
Based on WALDO’s verification results, the paykey is assigned an initial status:
  • active
  • rejected
  • review (requires manual review)
5

Secure Delivery of the Paykey

The Paykey object is securely returned to your application. It includes the paykey, masked bank account details, the available balance, and the current verification status.
6

Storage and Usage

Secure Storage

Your application never has to transmit PII or bank account details to Straddle.

Payment Initiation

The Paykey authorizes payments without exposing sensitive details.
By integrating Bridge and utilizing the WALDO algorithm to create Paykeys, you provide a secure and efficient way to process payments, enhancing both security and user experience.

Paykey Object Definition

The Paykey object represents a secure, tokenized link between a customer and their bank account. It is used to authorize payments without exposing sensitive financial information.

Paykey Attributes

Verification Results

On paykey creation, we perform name matching and determine whether the bank account is open and ready for transactions. The verification data we use to evaluate each paykey can be retrieved from the /paykeys/{id}/review endpoint. Use these insights to help you decide whether to accept or reject paykeys in review status, or to cancel active paykeys if needed.

Review Attributes

Paykey Status Details

  • The account_number in the bank_data object is always masked for security reasons. Use the unmasked paykey data endpoint to access the full account number when necessary and authorized.
  • The balance field is only available for certain integration types and may not always be present.
  • The source field indicates the method used to create the paykey, which can affect the available features and verification process.
  • The metadata object can contain up to 20 key-value pairs, each with a maximum length of 40 characters for keys and 500 characters for values.
  • The created_at and updated_at fields are automatically managed by Straddle and cannot be modified directly.
  • The expires_at field is only applicable for certain types of paykeys and integration methods.
  • Paykeys in review status can be manually approved or rejected via PATCH /paykeys/{id}/review.
  • Use GET /paykeys/{id}/review (or confirm if different endpoint) to retrieve verification details.

Example Paykey Object

Paykey Verification and Manual Review

When a paykey is created, it goes through an automated verification process that can result in one of three decisions:

Accept

Immediate ApprovalThe paykey passes all verification checks and is ready for use in payments immediately.

Review

Manual Review RequiredThe paykey has verification issues (e.g., name variations) that require human review before approval.

Reject

Verification FailedThe paykey fails verification due to significant issues and cannot be used for payments.

Verification Codes and their Meaning

A paykey’s verification decision and status are determined by the codes it receives during processing. If any rejection code is present, the paykey will be rejected regardless of other successful verification results. Other codes result in the paykey status being transitioned to review. Paykeys that pass verification will become active.
Paykeys must be in review status to have their verification outcome modified.

Manual Review Process

Manual paykey review gives you control over verification decisions. When a paykey has a review status, you can evaluate verification details and make informed decisions about whether to approve or reject the paykey—either through the dashboard or programmatically. This helps you prevent fraudulent accounts, manage risk, and ensure only legitimate payment methods are activated on your platform. You can view all paykeys requiring review at the bottom of the Overview page, or update their status programmatically using the review endpoint:
  1. Review Details: Access detailed verification information that may include names on the bank account and matched name in the dashboard or retrieve it from the review endpoint.
  2. Manual Decision: Resolve the paykey status by setting it to active or rejected.
  3. Retry Verification: Optionally refresh the verification process to re-evaluate the paykey.
The review process ensures that edge cases and minor discrepancies don’t automatically reject legitimate paykeys, while maintaining security standards.
Payment Processing During Paykey Review Payments are held while paykeys are under review. All transactions associated with a paykey in review status will be held until the paykey is either approved or rejected. Review paykeys promptly to avoid payment backlogs. Delayed reviews can cause multiple payments to queue up and process simultaneously once the paykey is approved. This can result in unexpected batch processing of charges or payouts for a single account. Paykey Review Response Sample responses from the /paykeys/{id}/review endpoint.
Accounts linked via open banking will show null for account validation details because validation is performed by the open banking provider. However, the same validation checks are still conducted—they’re just handled upstream by the provider rather than Straddle.
An account that is linked using account and routing number will have a null name match object since this data is not returned by the provider. We recommend using an open banking login where possible.

Account Balance Updates

For accounts linked using an open banking token or Bridge, you can receive balance updates when the following events occur:
  • When a new Paykey is created
  • When the new refresh endpoint is explicitly called, at most once per hour
  • When a charge or payout is created
You will receive the balance update within a Paykey webhook event. Manually trigger balance updates: You can also trigger a balance refresh by calling our new /paykeys/{id}/refresh_balance endpoint.

Using Paykeys

Paykeys are used in place of customer and bank account details when creating charges or payouts. Here’s an example of creating a charge using a paykey:

Ongoing Management & Unblocking

When a Paykey is blocked (e.g., R29), your customer can’t pay or get paid until it’s fixed. Unblock in the Dashboard once they’ve updated their bank settings—no support wait—so they can use the Paykey again quickly. View blocked Paykeys in the Overview tab or manage them directly from the specific Customer page. Paykey Unblocking Use the new PATCH /v1/paykeys/{id}/unblock endpoint to programmatically reactivate eligible Paykeys.

Handling R29 Returns

Corporate “positive pay” blocks often cause R29 returns; you can now confirm the customer has added your ACH identifier to their approved list and click “Unblock Paykey” in the Dashboard.

Benefits of Paykeys

For Businesses

Reduced Fraud Losses

Prevent unauthorized account use and save on potential fraud-related losses.

Regulatory Compliance

Simplify adherence to KYC and AML regulations.

Operational Efficiency

Automate identity matching, reducing the need for manual reviews while providing human oversight for edge cases.

Improved Customer Trust

Enhance reputation by ensuring secure transactions.

For Customers

Security

Protect customers from unauthorized use of their bank accounts.

Convenience

Eliminate the need for additional verification steps in most cases.

Privacy

Ensure personal data is handled securely and used appropriately.

Confidence

Build trust in the platform’s ability to protect financial information.

Further Reading