Skip to content
Get started

Lookup a charge

ChargeV1 Charges.Get(ChargeGetParamsparameters, CancellationTokencancellationToken = default)
GET/v1/charges/{id}

Retrieves the details of an existing charge. Supply the unique charge id, and Straddle will return the corresponding charge information.

ParametersExpand Collapse
ChargeGetParams parameters
required string id
string correlationID

Optional client generated identifier to trace and debug a series of requests.

string requestID

Optional client generated identifier to trace and debug a request.

string straddleAccountID

For use by platforms to specify an account id and set scope of a request.

formatuuid
ReturnsExpand Collapse
class ChargeV1:
required Data Data
required string ID

Unique identifier for the charge.

formatuuid
required Int Amount

The amount of the charge in cents.

formatint32
required Config Config

Configuration options for the charge.

required BalanceCheck BalanceCheck

Defines whether to check the customer's balance before processing the charge.

One of the following:
"required"Required
"enabled"Enabled
"disabled"Disabled
Boolean? AutoHold

Defines whether to automatically place this charge on hold after being created.

string? AutoHoldMessage

The reason the charge is being automatically held on creation.

SandboxOutcome SandboxOutcome

Payment will simulate processing if not Standard.

One of the following:
"standard"Standard
"paid"Paid
"on_hold_daily_limit"OnHoldDailyLimit
"cancelled_for_fraud_risk"CancelledForFraudRisk
"cancelled_for_balance_check"CancelledForBalanceCheck
"failed_insufficient_funds"FailedInsufficientFunds
"reversed_insufficient_funds"ReversedInsufficientFunds
"failed_customer_dispute"FailedCustomerDispute
"reversed_customer_dispute"ReversedCustomerDispute
"failed_closed_bank_account"FailedClosedBankAccount
"reversed_closed_bank_account"ReversedClosedBankAccount

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.

One of the following:
required DateTimeOffset? CreatedAt

Timestamp of when the charge was created.

formatdate-time
required string Currency

The currency of the charge. Only USD is supported.

required string? Description

An arbitrary description for the charge.

required DeviceInfoV1 Device

Information about the device used when the customer authorized the payment.

required string IPAddress

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.

formatipv4
required string ExternalID

Unique identifier for the charge in your database. This value must be unique across all charges.

required IReadOnlyList<string> FundingIds

Funding Ids

required string Paykey

Value of the paykey used for the charge.

required DateOnly PaymentDate

The desired date on which the payment should be occur. For charges, this means the date you want the customer to be debited on.

formatdate
required Status Status

The current status of the charge.

One of the following:
"created"Created
"scheduled"Scheduled
"failed"Failed
"cancelled"Cancelled
"on_hold"OnHold
"pending"Pending
"paid"Paid
"reversed"Reversed
"validating"Validating
required StatusDetailsV1 StatusDetails

Additional details about the current status of the charge.

required DateTimeOffset ChangedAt

The time the status change occurred.

formatdate-time
required string Message

A human-readable description of the current status.

required Reason Reason

A machine-readable identifier for the specific status, useful for programmatic handling.

One of the following:
"insufficient_funds"InsufficientFunds
"closed_bank_account"ClosedBankAccount
"invalid_bank_account"InvalidBankAccount
"invalid_routing"InvalidRouting
"disputed"Disputed
"payment_stopped"PaymentStopped
"owner_deceased"OwnerDeceased
"frozen_bank_account"FrozenBankAccount
"risk_review"RiskReview
"fraudulent"Fraudulent
"duplicate_entry"DuplicateEntry
"invalid_paykey"InvalidPaykey
"payment_blocked"PaymentBlocked
"amount_too_large"AmountTooLarge
"too_many_attempts"TooManyAttempts
"internal_system_error"InternalSystemError
"user_request"UserRequest
"ok"Ok
"other_network_return"OtherNetworkReturn
"payout_refused"PayoutRefused
"cancel_request"CancelRequest
"failed_verification"FailedVerification
"require_review"RequireReview
"blocked_by_system"BlockedBySystem
"watchtower_review"WatchtowerReview
"validating"Validating
"auto_hold"AutoHold
required Source Source

Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.

One of the following:
"watchtower"Watchtower
"bank_decline"BankDecline
"customer_dispute"CustomerDispute
"user_action"UserAction
"system"System
string? Code

The status code if applicable.

required IReadOnlyList<StatusHistory> StatusHistory

Status history.

required DateTimeOffset ChangedAt

The time the status change occurred.

formatdate-time
required string Message

A human-readable description of the status.

required Reason Reason

A machine-readable identifier for the specific status, useful for programmatic handling.

One of the following:
"insufficient_funds"InsufficientFunds
"closed_bank_account"ClosedBankAccount
"invalid_bank_account"InvalidBankAccount
"invalid_routing"InvalidRouting
"disputed"Disputed
"payment_stopped"PaymentStopped
"owner_deceased"OwnerDeceased
"frozen_bank_account"FrozenBankAccount
"risk_review"RiskReview
"fraudulent"Fraudulent
"duplicate_entry"DuplicateEntry
"invalid_paykey"InvalidPaykey
"payment_blocked"PaymentBlocked
"amount_too_large"AmountTooLarge
"too_many_attempts"TooManyAttempts
"internal_system_error"InternalSystemError
"user_request"UserRequest
"ok"Ok
"other_network_return"OtherNetworkReturn
"payout_refused"PayoutRefused
"cancel_request"CancelRequest
"failed_verification"FailedVerification
"require_review"RequireReview
"blocked_by_system"BlockedBySystem
"watchtower_review"WatchtowerReview
"validating"Validating
"auto_hold"AutoHold
required Source Source

Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.

One of the following:
"watchtower"Watchtower
"bank_decline"BankDecline
"customer_dispute"CustomerDispute
"user_action"UserAction
"system"System
required Status Status

The current status of the charge or payout.

One of the following:
"created"Created
"scheduled"Scheduled
"failed"Failed
"cancelled"Cancelled
"on_hold"OnHold
"pending"Pending
"paid"Paid
"reversed"Reversed
"validating"Validating
string? Code

The status code if applicable.

required IReadOnlyDictionary<string, string> TraceIds

Trace Ids.

required DateTimeOffset? UpdatedAt

Timestamp of when the charge was last updated.

formatdate-time
CustomerDetailsV1 CustomerDetails

Information about the customer associated with the charge.

required string ID

Unique identifier for the customer

formatuuid
required CustomerType CustomerType

The type of customer

One of the following:
"individual"Individual
"business"Business
required string Email

The customer's email address

required string Name

The name of the customer

required string Phone

The customer's phone number in E.164 format

DateTimeOffset? EffectiveAt

Timestamp of when the charge was effective in the customer's bank account, otherwise known as the date on which the customer is debited.

formatdate-time
IReadOnlyDictionary<string, string>? Metadata

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

PaykeyDetailsV1 PaykeyDetails

Information about the paykey used for the charge.

required string ID

Unique identifier for the paykey.

formatuuid
required string CustomerID

Unique identifier for the customer associated with the paykey.

formatuuid
required string Label

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

Int? Balance

The most recent balance of the bank account associated with the paykey in dollars.

formatint32
PaymentRail PaymentRail

The payment rail that the charge will be processed through.

DateTimeOffset? ProcessedAt

Timestamp of when the charge was processed by Straddle and originated to the payment rail.

formatdate-time

Related payments.

One of the following:
required ResponseMetadata Meta

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

required string ApiRequestID

Unique identifier for this API request, useful for troubleshooting.

formatuuid
required DateTimeOffset ApiRequestTimestamp

Timestamp for this API request, useful for troubleshooting.

formatdate-time
required ResponseType ResponseType

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.
One of the following:
"object"Object
"array"Array
"error"Error
"none"None

Lookup a charge

ChargeGetParams parameters = new()
{
    ID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
};

var chargeV1 = await client.Charges.Get(parameters);

Console.WriteLine(chargeV1);
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "amount": 10000,
    "config": {
      "balance_check": "required",
      "auto_hold": true,
      "auto_hold_message": "auto_hold_message",
      "sandbox_outcome": "standard"
    },
    "consent_type": "internet",
    "created_at": "2019-12-27T18:11:19.117Z",
    "currency": "currency",
    "description": "Monthly subscription fee",
    "device": {
      "ip_address": "192.168.1.1"
    },
    "external_id": "external_id",
    "funding_ids": [
      "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    ],
    "paykey": "paykey",
    "payment_date": "2019-12-27",
    "status": "created",
    "status_details": {
      "changed_at": "2019-12-27T18:11:19.117Z",
      "message": "Payment successfully created and awaiting validation.",
      "reason": "insufficient_funds",
      "source": "system",
      "code": null
    },
    "status_history": [
      {
        "changed_at": "2019-12-27T18:11:19.117Z",
        "message": "Payment successfully created and awaiting validation.",
        "reason": "insufficient_funds",
        "source": "watchtower",
        "status": "created",
        "code": null
      }
    ],
    "trace_ids": {
      "foo": "string"
    },
    "updated_at": "2019-12-27T18:11:19.117Z",
    "customer_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "customer_type": "individual",
      "email": "ron@swanson.com",
      "name": "Ron Swanson",
      "phone": "+1234567890"
    },
    "effective_at": "2019-12-27T18:11:19.117Z",
    "metadata": {
      "foo": "string"
    },
    "paykey_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "label": "Bank of America ****1234",
      "balance": 0
    },
    "payment_rail": "ach",
    "processed_at": "2019-12-27T18:11:19.117Z",
    "related_payments": {
      "foo": "original"
    }
  },
  "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",
    "amount": 10000,
    "config": {
      "balance_check": "required",
      "auto_hold": true,
      "auto_hold_message": "auto_hold_message",
      "sandbox_outcome": "standard"
    },
    "consent_type": "internet",
    "created_at": "2019-12-27T18:11:19.117Z",
    "currency": "currency",
    "description": "Monthly subscription fee",
    "device": {
      "ip_address": "192.168.1.1"
    },
    "external_id": "external_id",
    "funding_ids": [
      "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    ],
    "paykey": "paykey",
    "payment_date": "2019-12-27",
    "status": "created",
    "status_details": {
      "changed_at": "2019-12-27T18:11:19.117Z",
      "message": "Payment successfully created and awaiting validation.",
      "reason": "insufficient_funds",
      "source": "system",
      "code": null
    },
    "status_history": [
      {
        "changed_at": "2019-12-27T18:11:19.117Z",
        "message": "Payment successfully created and awaiting validation.",
        "reason": "insufficient_funds",
        "source": "watchtower",
        "status": "created",
        "code": null
      }
    ],
    "trace_ids": {
      "foo": "string"
    },
    "updated_at": "2019-12-27T18:11:19.117Z",
    "customer_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "customer_type": "individual",
      "email": "ron@swanson.com",
      "name": "Ron Swanson",
      "phone": "+1234567890"
    },
    "effective_at": "2019-12-27T18:11:19.117Z",
    "metadata": {
      "foo": "string"
    },
    "paykey_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "label": "Bank of America ****1234",
      "balance": 0
    },
    "payment_rail": "ach",
    "processed_at": "2019-12-27T18:11:19.117Z",
    "related_payments": {
      "foo": "original"
    }
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}