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

Open in Claude
Open in ChatGPT

Simulate status transitions for a sandbox account

post/v1/accounts/{account_id}/simulate

Simulate the status transitions for sandbox accounts. This endpoint can only be used for sandbox accounts.

Path ParametersExpand Collapse
account_id: string
Query ParametersExpand Collapse
final_status: optional "onboarding" or "active"
Accepts one of the following:
"onboarding"
"active"
Header ParametersExpand Collapse
"correlation-id": optional string
"idempotency-key": optional string
"request-id": optional string
ReturnsExpand Collapse
AccountV1 = object { data, meta, response_type }
data: object { id, access_level, organization_id, 11 more }
id: string

Unique identifier for the account.

formatuuid
access_level: "standard" or "managed"

The access level granted to the account. This is determined by your platform configuration. Use standard unless instructed otherwise by Straddle.

Accepts one of the following:
"standard"
"managed"
organization_id: string

The unique identifier of the organization this account belongs to.

formatuuid
status: "created" or "onboarding" or "active" or 2 more

The current status of the account (e.g., 'active', 'inactive', 'pending').

Accepts one of the following:
"created"
"onboarding"
"active"
"rejected"
"inactive"
status_detail: object { code, message, reason, source }
code: string

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

message: string

A human-readable message describing the current status.

reason: "unverified" or "in_review" or "pending" or 6 more

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

Accepts one of the following:
"unverified"
"in_review"
"pending"
"stuck"
"verified"
"failed_verification"
"disabled"
"terminated"
"new"
source: "watchtower"

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

Accepts one of the following:
"watchtower"
type: "business"

The type of account (e.g., 'individual', 'business').

Accepts one of the following:
"business"
business_profile: optional BusinessProfileV1 { name, website, address, 7 more }
name: string

The operating or trade name of the business.

website: string

URL of the business's primary marketing website.

formaturi
address: optional AddressV1 { address1, city, state, 6 more }

The address object is optional. If provided, it must be a valid address.

address1: string

Primary address line (e.g., street, PO Box).

city: string

City, district, suburb, town, or village.

state: string

Two-letter state code.

zip: string

Zip or postal code.

address2: optional string

Secondary address line (e.g., apartment, suite, unit, or building).

country: optional string

The country of the address, in ISO 3166-1 alpha-2 format.

line1: optional string

Primary address line (e.g., street, PO Box).

line2: optional string

Secondary address line (e.g., apartment, suite, unit, or building).

postal_code: optional string

Postal or ZIP code.

description: optional string

A brief description of the business and its products or services.

industry: optional IndustryV1 { category, mcc, sector }
category: optional string

The general category of the industry. Required if not providing MCC.

mcc: optional string

The Merchant Category Code (MCC) that best describes the business. Optional.

sector: optional string

The specific sector within the industry category. Required if not providing MCC.

The official registered name of the business.

phone: optional string

The primary contact phone number for the business.

support_channels: optional SupportChannelsV1 { email, phone, url }
email: optional string

The email address for customer support inquiries.

formatemail
phone: optional string

The phone number for customer support.

url: optional string

The URL of the business's customer support page or contact form.

formaturi
tax_id: optional string

The business's tax identification number (e.g., EIN in the US).

use_case: optional string

A description of how the business intends to use Straddle's services.

capabilities: optional object { consent_types, customer_types, payment_types }

Whether the internet payment authorization capability is enabled for the account.

Accepts one of the following:

Whether the signed agreement payment authorization capability is enabled for the account.

Accepts one of the following:
customer_types: object { businesses, individuals }
businesses: CapabilityV1 { capability_status }
capability_status: "active" or "inactive"
Accepts one of the following:
"active"
"inactive"
individuals: CapabilityV1 { capability_status }
capability_status: "active" or "inactive"
Accepts one of the following:
"active"
"inactive"
payment_types: object { charges, payouts }
charges: CapabilityV1 { capability_status }
capability_status: "active" or "inactive"
Accepts one of the following:
"active"
"inactive"
payouts: CapabilityV1 { capability_status }
capability_status: "active" or "inactive"
Accepts one of the following:
"active"
"inactive"
created_at: optional string

Timestamp of when the account was created.

formatdate-time
external_id: optional string

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

metadata: optional map[string]

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

settings: optional object { charges, payouts }
charges: object { daily_amount, funding_time, linked_bank_account_id, 3 more }
daily_amount: number

The maximum dollar amount of charges in a calendar day.

formatint32
funding_time: "immediate" or "next_day" or "one_day" or 2 more

The amount of time it takes for a charge to be funded. This value is defined by Straddle.

Accepts one of the following:
"immediate"
"next_day"
"one_day"
"two_day"
"three_day"
linked_bank_account_id: string

The unique identifier of the linked bank account associated with charges. This value is defined by Straddle.

formatuuid
max_amount: number

The maximum amount of a single charge.

formatint32
monthly_amount: number

The maximum dollar amount of charges in a calendar month.

formatint32
monthly_count: number

The maximum number of charges in a calendar month.

formatint32
payouts: object { daily_amount, funding_time, linked_bank_account_id, 3 more }
daily_amount: number

The maximum dollar amount of payouts in a day.

formatint32
funding_time: "immediate" or "next_day" or "one_day" or 2 more

The amount of time it takes for a payout to be funded. This value is defined by Straddle.

Accepts one of the following:
"immediate"
"next_day"
"one_day"
"two_day"
"three_day"
linked_bank_account_id: string

The unique identifier of the linked bank account to use for payouts.

formatuuid
max_amount: number

The maximum amount of a single payout.

formatint32
monthly_amount: number

The maximum dollar amount of payouts in a month.

formatint32
monthly_count: number

The maximum number of payouts in a month.

formatint32
terms_of_service: optional TermsOfServiceV1 { accepted_date, agreement_type, agreement_url, 2 more }
accepted_date: string

The datetime of when the terms of service were accepted, in ISO 8601 format.

formatdate-time
agreement_type: "embedded" or "direct"

The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.

Accepts one of the following:
"embedded"
"direct"
agreement_url: string

The URL where the full text of the accepted agreement can be found.

accepted_ip: optional string

The IP address from which the terms of service were accepted.

accepted_user_agent: optional string

The user agent string of the browser or application used to accept the terms.

updated_at: optional string

Timestamp of the most recent update to the account.

formatdate-time
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: string

Timestamp for this API request, useful for troubleshooting.

formatdate-time
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"
Simulate status transitions for a sandbox account
curl https://sandbox.straddle.com/v1/accounts/$ACCOUNT_ID/simulate \
    -X POST \
    -H "Authorization: Bearer $STRADDLE_API_KEY"
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "access_level": "standard",
    "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "status": "created",
    "status_detail": {
      "code": "code",
      "message": "message",
      "reason": "unverified",
      "source": "watchtower"
    },
    "type": "business",
    "business_profile": {
      "name": "name",
      "website": "https://example.com",
      "address": {
        "address1": "address1",
        "city": "city",
        "state": "SE",
        "zip": "zip",
        "address2": "address2",
        "country": "country",
        "line1": "line1",
        "line2": "line2",
        "postal_code": "21029-1360"
      },
      "description": "description",
      "industry": {
        "category": "category",
        "mcc": "mcc",
        "sector": "sector"
      },
      "legal_name": "legal_name",
      "phone": "+46991022",
      "support_channels": {
        "email": "dev@stainless.com",
        "phone": "+46991022",
        "url": "https://example.com"
      },
      "tax_id": "210297980",
      "use_case": "use_case"
    },
    "capabilities": {
      "consent_types": {
        "internet": {
          "capability_status": "active"
        },
        "signed_agreement": {
          "capability_status": "active"
        }
      },
      "customer_types": {
        "businesses": {
          "capability_status": "active"
        },
        "individuals": {
          "capability_status": "active"
        }
      },
      "payment_types": {
        "charges": {
          "capability_status": "active"
        },
        "payouts": {
          "capability_status": "active"
        }
      }
    },
    "created_at": "2019-12-27T18:11:19.117Z",
    "external_id": "external_id",
    "metadata": {
      "foo": "string"
    },
    "settings": {
      "charges": {
        "daily_amount": 0,
        "funding_time": "immediate",
        "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "max_amount": 0,
        "monthly_amount": 0,
        "monthly_count": 0
      },
      "payouts": {
        "daily_amount": 0,
        "funding_time": "immediate",
        "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "max_amount": 0,
        "monthly_amount": 0,
        "monthly_count": 0
      }
    },
    "terms_of_service": {
      "accepted_date": "2019-12-27T18:11:19.117Z",
      "agreement_type": "embedded",
      "agreement_url": "agreement_url",
      "accepted_ip": "accepted_ip",
      "accepted_user_agent": "accepted_user_agent"
    },
    "updated_at": "2019-12-27T18:11:19.117Z"
  },
  "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",
    "access_level": "standard",
    "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "status": "created",
    "status_detail": {
      "code": "code",
      "message": "message",
      "reason": "unverified",
      "source": "watchtower"
    },
    "type": "business",
    "business_profile": {
      "name": "name",
      "website": "https://example.com",
      "address": {
        "address1": "address1",
        "city": "city",
        "state": "SE",
        "zip": "zip",
        "address2": "address2",
        "country": "country",
        "line1": "line1",
        "line2": "line2",
        "postal_code": "21029-1360"
      },
      "description": "description",
      "industry": {
        "category": "category",
        "mcc": "mcc",
        "sector": "sector"
      },
      "legal_name": "legal_name",
      "phone": "+46991022",
      "support_channels": {
        "email": "dev@stainless.com",
        "phone": "+46991022",
        "url": "https://example.com"
      },
      "tax_id": "210297980",
      "use_case": "use_case"
    },
    "capabilities": {
      "consent_types": {
        "internet": {
          "capability_status": "active"
        },
        "signed_agreement": {
          "capability_status": "active"
        }
      },
      "customer_types": {
        "businesses": {
          "capability_status": "active"
        },
        "individuals": {
          "capability_status": "active"
        }
      },
      "payment_types": {
        "charges": {
          "capability_status": "active"
        },
        "payouts": {
          "capability_status": "active"
        }
      }
    },
    "created_at": "2019-12-27T18:11:19.117Z",
    "external_id": "external_id",
    "metadata": {
      "foo": "string"
    },
    "settings": {
      "charges": {
        "daily_amount": 0,
        "funding_time": "immediate",
        "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "max_amount": 0,
        "monthly_amount": 0,
        "monthly_count": 0
      },
      "payouts": {
        "daily_amount": 0,
        "funding_time": "immediate",
        "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "max_amount": 0,
        "monthly_amount": 0,
        "monthly_count": 0
      }
    },
    "terms_of_service": {
      "accepted_date": "2019-12-27T18:11:19.117Z",
      "agreement_type": "embedded",
      "agreement_url": "agreement_url",
      "accepted_ip": "accepted_ip",
      "accepted_user_agent": "accepted_user_agent"
    },
    "updated_at": "2019-12-27T18:11:19.117Z"
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}