Accounts are the foundation of an interaction with Straddle. Each account represents a distinct business entity that has entered into a contractual relationship with Straddle to utilize our payment services. Understanding how to work with accounts is crucial for leveraging Straddle’s full potential.

Understanding Accounts

An account in Straddle is a comprehensive representation of a business entity with the following key aspects:

  1. Legal Entity: Each account corresponds to a specific legal business entity.
  2. Immediate Sandbox Access: Upon creation, accounts can instantly access the Straddle API Sandbox.
  3. Production Readiness: To activate production access, accounts need to complete an automated onboarding process.
  4. Customizable: Accounts can be tailored with specific capabilities, settings, and metadata.
  5. Hierarchical: Accounts can be organized under parent Organizations for streamlined management.

As a platform integrating with Straddle, you have the unique ability to create and manage accounts on behalf of your clients. This process involves several key steps to ensure a smooth onboarding experience for your clients and compliance with Straddle’s requirements.

Step-by-Step Account Creation and Onboarding Process

Always create an Organization before creating an Account.

Create the Account

Use the Create Account endpoint to establish the initial account record for your client. This step sets up the basic structure of the account in Straddle’s system.

Add Required Related Objects

After creating the account, you need to add several related objects to complete the account profile:

Initiate Onboarding

Once all required information and related objects are in place, use the Onboard Account endpoint to start the formal onboarding process. This triggers Straddle’s compliance checks and moves the account towards production readiness.

Key Considerations

Accurate Information Gathering

Ensure you collect and provide accurate, up-to-date information from your clients. This is crucial for successful onboarding and ongoing compliance.

Progressive Information Collection

Consider implementing a step-by-step process in your platform to collect information from clients gradually, aligning with Straddle’s account creation and onboarding flow.

Error Handling

Implement robust error handling in your integration. If any step fails (e.g., account creation, adding a representative), ensure your system can gracefully handle and communicate these errors.

Status Tracking

Enable webhooks to track the status of your accounts. This allows you to track progress through the onboarding process and identify any issues that need attention.

Best Practices

By following these guidelines and best practices, you can create a smooth, efficient process for creating and onboarding client accounts through your platform. This not only enhances your clients’ experience but also helps ensure compliance and reduces potential delays in getting accounts production-ready.

Creating an Account

Use the Create Account endpoint to set up a new account in Straddle.

Attributes

When creating an account, you can specify the following attributes:

FieldTypeDescription
organization_idstringThe unique identifier of the organization this account belongs to.
account_typestringThe type of account. Currently, only ‘business’ is supported.
business_profileobjectDetailed information about the business associated with this account.
business_profile.namestringThe operating or trade name of the business.
business_profile.websitestringURL of the business’s primary marketing website.
business_profile.legal_namestringThe official registered name of the business.
business_profile.descriptionstringA brief description of the business and its products or services.
business_profile.use_casestringA description of how the business intends to use Straddle’s services.
business_profile.tax_idstringThe business’s tax identification number (e.g., EIN in the US).
business_profile.phonestringThe primary contact phone number for the business.
business_profile.addressobjectThe primary address of the business.
business_profile.address.line1stringPrimary address line (e.g., street, PO Box).
business_profile.address.line2stringSecondary address line (e.g., apartment, suite, unit, or building).
business_profile.address.citystringCity, district, suburb, town, or village.
business_profile.address.statestringTwo-letter state code.
business_profile.address.postal_codestringPostal or ZIP code.
business_profile.address.countrystringThe country of the address, in ISO 3166-1 alpha-2 format.
business_profile.industryobjectInformation about the business’s industry.
business_profile.industry.mccstringThe Merchant Category Code (MCC) that best describes the business.
business_profile.industry.sectorstringThe specific sector within the industry category.
business_profile.industry.categorystringThe general category of the industry.
business_profile.support_channelsobjectContact information for customer support.
business_profile.support_channels.emailstringThe email address for customer support inquiries.
business_profile.support_channels.phonestringThe phone number for customer support.
business_profile.support_channels.urlstringThe URL of the business’s customer support page or contact form.
access_levelstringThe desired access level for the account. Can be ‘standard’ or ‘managed’.
metadataobjectAdditional key-value pairs for storing extra information about the account.
external_idstringYour own unique identifier for the account, useful for cross-referencing.

Example Request

Here’s how you might create a new account with all possible fields:

Response

Account Created Response
{
  "id": "acc_12345abcde",
  "organization_id": "org_12345abcde",
  "account_type": "business",
  "business_profile": {
    "name": "Tech Innovators LLC",
    "website": "https://techinnovators.com",
{
  "id": "acct_1234567890abcdef",
  "organization_id": "org_9876543210fedcba",
  "type": "business",
  "status": "created",
  "status_detail": {
    "reason": "unverified",
    "source": "watchtower",
    "code": "acct_unverified",
    "message": "Account created successfully, pending verification"
  },
  "business_profile": {
    "name": "Tech Innovators LLC",
    "website": "https://techinnovators.com",
    "legal_name": "Tech Innovators Limited Liability Company",
    "description": "Cutting-edge software solutions for businesses",
    "use_case": "Providing SaaS products and accepting online payments",
    "tax_id": "12-3456789",
    "phone": "+1 (555) 123-4567",
    "address": {
      "line1": "123 Innovation Drive",
      "line2": "Suite 200",
      "city": "San Francisco",
      "state": "CA",
      "postal_code": "94105",
      "country": "US"
    },
    "industry": {
      "mcc": "5734",
      "sector": "Technology",
      "category": "Software"
    },
    "support_channels": {
      "email": "support@techinnovators.com",
      "phone": "+1 (555) 987-6543",
      "url": "https://techinnovators.com/support"
    }
  },
  "capabilities": {
    "payment_types": {
      "charges": {
        "capability_status": "inactive"
      },
      "payouts": {
        "capability_status": "inactive"
      }
    },
    "customer_types": {
      "individuals": {
        "capability_status": "inactive"
      },
      "businesses": {
        "capability_status": "inactive"
      }
    },
    "consent_types": {
      "signed_agreement": {
        "capability_status": "inactive"
      },
      "internet": {
        "capability_status": "inactive"
      }
    }
  },
  "settings": {
    "charges": {},
    "payouts": {}
  },
  "terms_of_service": null,
  "metadata": {
    "internal_id": "TI2023",
    "account_manager": "jane.doe@straddle.com"
  },
  "access_level": "standard",
  "external_id": "TechInnovators2023",
  "created_at": "2023-06-15T10:30:00Z",
  "updated_at": "2023-06-15T10:30:00Z"
}

Account Status

Account statuses in Straddle reflect the current state of an account in its lifecycle. Understanding these statuses is crucial for managing accounts effectively and knowing when certain actions can be performed.

StatusDescription
CreatedInitial status when an account is first created.
OnboardingThe account is going through the onboarding process.
ActiveThe account has completed onboarding and is fully operational.
RejectedThe account has failed the onboarding process or compliance checks.
InactiveThe account has been temporarily or permanently suspended.

Understanding status_detail

The status_detail object provides more granular information about the account’s current status. It includes the following fields:

reason
string

A more specific reason for the current status. Possible values include:

  • unverified: Initial state, pending verification
  • in_review: Account is being reviewed
  • pending: Waiting for additional information
  • stuck: Issues in the verification process
  • verified: Successfully verified
  • failed_verification: Verification process failed
  • disabled: Account has been disabled
  • terminated: Account has been permanently closed
source
string

Indicates the system or process that set the current status. Currently, this is always “watchtower”, Straddle’s compliance monitoring system.

code
string

A specific code related to the status reason. This can be useful for programmatically handling different status scenarios.

message
string

A human-readable message providing more context about the current status.

Always check both the status and status_detail when handling accounts in your integration. The status_detail can provide crucial information for resolving issues or proceeding with account management.

Next Steps

Once your platform has successfully created an account, you can move forward with the next steps: adding representatives and linking bank accounts. These actions ensure that the account is fully set up to operate and receive funds. Representatives allow you to associate key individuals with the account for compliance purposes, while adding bank accounts enables the platform to facilitate payouts and other financial transactions. Moving through these stages will complete the onboarding process and prepare the account for full functionality on the Straddle platform.