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

Open in Claude
Open in ChatGPT

Cancel

paykeys.cancel(id, **kwargs) -> PaykeyV1 { data, meta, response_type }
put/v1/paykeys/{id}/cancel
ParametersExpand Collapse
id: String
reason: String
correlation_id: String
idempotency_key: String
request_id: String
straddle_account_id: String
ReturnsExpand Collapse
class PaykeyV1 { data, meta, response_type }
data: { id, config, created_at, 13 more}
id: String

Unique identifier for the paykey.

formatuuid
config: { processing_method, sandbox_outcome}
processing_method: :inline | :background | :skip
Accepts one of the following:
:inline
:background
:skip
sandbox_outcome: :standard | :active | :rejected | :review
Accepts one of the following:
:standard
:active
:rejected
:review
created_at: Time

Timestamp of when the paykey was created.

formatdate-time
label: String

Human-readable label used to 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 | :straddle | :mx | 3 more
Accepts one of the following:
:bank_account
:straddle
:mx
:plaid
:tan
:quiltt
status: :pending | :active | :inactive | 2 more
Accepts one of the following:
:pending
:active
:inactive
:rejected
:review
updated_at: Time

Timestamp of the most recent update to the paykey.

formatdate-time
balance: { status, account_balance, updated_at}
status: :pending | :completed | :failed
Accepts one of the following:
:pending
:completed
:failed
account_balance: Integer

Account Balance when last retrieved

formatint32
updated_at: Time

Last time account balance was updated.

formatdate-time
bank_data: { 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 | :savings
Accepts one of the following:
:checking
:savings
routing_number: String

The routing number of the bank account.

minLength9
maxLength9
customer_id: String

Unique identifier of the related customer object.

formatuuid
expires_at: Time

Expiration date and time of the paykey, if applicable.

formatdate-time
external_id: String

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

institution_name: String

Name of the financial institution.

metadata: Hash[Symbol, String]

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

status_details: { changed_at, message, reason, 2 more}
changed_at: Time

The time the status change occurred.

formatdate-time
message: String

A human-readable description of the current status.

reason: :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: :watchtower | :bank_decline | :customer_dispute | 2 more
Accepts one of the following:
:watchtower
:bank_decline
:customer_dispute
:user_action
:system
code: String

The status code if applicable.

meta: ResponseMetadata { api_request_id, api_request_timestamp }

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

api_request_id: String

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: :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
require "straddle"

straddle = Straddle::Client.new(
  api_key: "My API Key",
  environment: "production" # defaults to "sandbox"
)

paykey_v1 = straddle.paykeys.cancel("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")

puts(paykey_v1)
{
  "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": "****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"
    }
  },
  "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": "****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"
    }
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}