Charges
Release a charge
Cancel a charge
Get a charge by id.
ModelsExpand Collapse
class ChargeV1: …
data: Data
id: str
Unique identifier for the charge.
amount: int
The amount of the charge in cents.
config: DataConfig
Configuration options for the charge.
balance_check: Literal["required", "enabled", "disabled"]
Defines whether to check the customer's balance before processing the charge.
sandbox_outcome: Optional[Literal["standard", "paid", "on_hold_daily_limit", 8 more]]
Payment will simulate processing if not Standard.
consent_type: Literal["internet", "signed"]
The channel or mechanism through which the payment was authorized. Use internet for payments made online or through a mobile app and signed for signed agreements where there is a consent form or contract. Use signed for PDF signatures.
created_at: Optional[datetime]
Timestamp of when the charge was created.
currency: str
The currency of the charge. Only USD is supported.
description: str
An arbitrary description for the charge.
Information about the device used when the customer authorized the payment.
ip_address: str
The IP address of the device used when the customer authorized the charge or payout. Use 0.0.0.0 to represent an offline consent interaction.
external_id: str
Unique identifier for the charge in your database. This value must be unique across all charges.
funding_ids: List[str]
Funding Ids
paykey: str
Value of the paykey used for the charge.
payment_date: date
The desired date on which the payment should be occur. For charges, this means the date you want the customer to be debited on.
status: Literal["created", "scheduled", "failed", 5 more]
The current status of the charge.
Additional details about the current status of the charge.
changed_at: datetime
The time the status change occurred.
message: str
A human-readable description of the current status.
reason: Literal["insufficient_funds", "closed_bank_account", "invalid_bank_account", 17 more]
A machine-readable identifier for the specific status, useful for programmatic handling.
source: Literal["watchtower", "bank_decline", "customer_dispute", 2 more]
Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.
code: Optional[str]
The status code if applicable.
status_history: List[DataStatusHistory]
Status history.
changed_at: datetime
The time the status change occurred.
message: str
A human-readable description of the status.
reason: Literal["insufficient_funds", "closed_bank_account", "invalid_bank_account", 17 more]
A machine-readable identifier for the specific status, useful for programmatic handling.
source: Literal["watchtower", "bank_decline", "customer_dispute", 2 more]
Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.
status: Literal["created", "scheduled", "failed", 5 more]
The current status of the charge or payout.
code: Optional[str]
The status code if applicable.
updated_at: Optional[datetime]
Timestamp of when the charge was last updated.
customer_details: Optional[CustomerDetailsV1]
Information about the customer associated with the charge.
id: str
Unique identifier for the customer
customer_type: Literal["individual", "business"]
The type of customer
email: str
The customer's email address
name: str
The name of the customer
phone: str
The customer's phone number in E.164 format
effective_at: Optional[datetime]
Timestamp of when the charge was effective in the customer's bank account, otherwise known as the date on which the customer is debited.
metadata: Optional[Dict[str, str]]
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the charge in a structured format.
paykey_details: Optional[PaykeyDetailsV1]
Information about the paykey used for the charge.
id: str
Unique identifier for the paykey.
customer_id: str
Unique identifier for the customer associated with the paykey.
label: str
Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI
balance: Optional[int]
The most recent balance of the bank account associated with the paykey in dollars.
payment_rail: Optional[Literal["ach"]]
The payment rail that the charge will be processed through.
processed_at: Optional[datetime]
Timestamp of when the charge was processed by Straddle and originated to the payment rail.
Metadata about the API request, including an identifier and timestamp.
api_request_id: str
Unique identifier for this API request, useful for troubleshooting.
api_request_timestamp: datetime
Timestamp for this API request, useful for troubleshooting.
response_type: Literal["object", "array", "error", "none"]
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.