Create and manage client accounts
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.
An account in Straddle is a comprehensive representation of a business entity with the following key aspects:
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.
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:
Representatives
Use the Create Representative endpoint to add individuals who have legal authority or significant responsibility within the business. At least one representative is required.
Linked Bank Accounts
Use the Create Linked Bank Account endpoint to associate your client’s bank account with their Straddle account. This is necessary for processing payments and payouts.
Capabilities
Use the Request Capabilities endpoint to specify which Straddle features your client needs (e.g., accepting payments, making payouts).
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
Be sure to capture the Payment Services Agreement consent data prior calling the onboarding endpoint. You must be able to reproduce the agreement consent as requested by Straddle.
Ensure you collect and provide accurate, up-to-date information from your clients. This is crucial for successful onboarding and ongoing compliance.
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.
Implement robust error handling in your integration. Ensure your system can gracefully handle and communicate these errors.
Enable webhooks to track the status of your accounts to ensure your integration always stays in sync
Automate Wisely
While you can automate much of the account creation and onboarding process, always provide a way for human intervention when needed.
Provide Clear Guidance
Offer clear instructions and possibly a guided workflow in your platform UI to help clients understand what information they need to provide and why.
Implement Webhooks
Use Straddle’s webhook functionality to receive real-time updates about account status changes, allowing you to promptly respond to any issues or next steps.
Secure Data Handling
Ensure all sensitive client data is handled securely, both in transit and at rest. Implement proper encryption and access controls in your platform.
Offer Support
Be prepared to offer support to your clients throughout the onboarding process. Consider providing FAQs, live chat, or direct support for complex issues.
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.
Use the Create Account endpoint to set up a new account in Straddle.
When creating an account, you can specify the following attributes:
Field | Type | Description |
---|---|---|
organization_id | string | The unique identifier of the organization this account belongs to. |
account_type | string | The type of account. Currently, only ‘business’ is supported. |
business_profile | object | Detailed information about the business associated with this account. |
business_profile.name | string | The operating or trade name of the business. |
business_profile.website | string | URL of the business’s primary marketing website. |
business_profile.legal_name | string | The official registered name of the business. |
business_profile.description | string | A brief description of the business and its products or services. |
business_profile.use_case | string | A description of how the business intends to use Straddle’s services. |
business_profile.tax_id | string | The business’s tax identification number (e.g., EIN in the US). |
business_profile.phone | string | The primary contact phone number for the business. |
business_profile.address | object | The primary address of the business. |
business_profile.address.line1 | string | Primary address line (e.g., street, PO Box). |
business_profile.address.line2 | string | Secondary address line (e.g., apartment, suite, unit, or building). |
business_profile.address.city | string | City, district, suburb, town, or village. |
business_profile.address.state | string | Two-letter state code. |
business_profile.address.postal_code | string | Postal or ZIP code. |
business_profile.address.country | string | The country of the address, in ISO 3166-1 alpha-2 format. |
business_profile.industry | object | Information about the business’s industry. |
business_profile.industry.mcc | string | The Merchant Category Code (MCC) that best describes the business. |
business_profile.industry.sector | string | The specific sector within the industry category. |
business_profile.industry.category | string | The general category of the industry. |
business_profile.support_channels | object | Contact information for customer support. |
business_profile.support_channels.email | string | The email address for customer support inquiries. |
business_profile.support_channels.phone | string | The phone number for customer support. |
business_profile.support_channels.url | string | The URL of the business’s customer support page or contact form. |
access_level | string | The desired access level for the account. Can be ‘standard’ or ‘managed’. |
metadata | object | Additional key-value pairs for storing extra information about the account. |
external_id | string | Your own unique identifier for the account, useful for cross-referencing. |
Here’s how you might create a new account with all possible fields:
After you’ve created an account, added representatives, and linked a bank account, you’ll need to onboard the account to initiate the straddle process. This endpoint handles the final activation step for the account.
Before calling this endpoint, you must obtain the user’s consent to the Straddle Terms of Service. The full terms can be found at legal.straddle.io.
Parameter | Type | Required | Description |
---|---|---|---|
account_id | string | Yes | The unique identifier of the account to onboard |
Parameter | Type | Required | Description |
---|---|---|---|
terms_of_service | object | Yes | Information about the user’s acceptance of Straddle’s terms of service |
Field | Type | Required | Description |
---|---|---|---|
accepted_date | string | Yes | The datetime when the terms of service were accepted, in ISO 8601 format (e.g., “2025-03-21T10:30:00Z”) |
agreement_type | enum<string> | Yes | The type or version of the agreement accepted. Available options: embedded , direct Use embedded unless your platform was specifically enabled for direct agreements |
accepted_ip | string | No | The IP address from which the terms of service were accepted |
accepted_user_agent | string | No | The user agent string of the browser or application used to accept the terms |
agreement_url | string | Yes | The URL where the full text of the accepted agreement can be found |
A successful request returns a 200 OK
response with details about the account.
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.
Status | Description |
---|---|
Created | Initial status when an account is first created. |
Onboarding | The account is going through the onboarding process. |
Active | The account has completed onboarding and is fully operational. |
Rejected | The account has failed the onboarding process or compliance checks. |
Inactive | The account has been temporarily or permanently suspended. |
Created
The account exists but is not yet ready for use.
When to update:
You can update account details, add representatives, and link bank accounts at this stage.
Next step:
Complete the account setup and initiate onboarding.
Onboarding
Additional information may be required during this process.
When to update:
You can still update certain account details if additional information is requested.
Next step:
Wait for the onboarding process to complete. Monitor for any requests for additional information.
Active
When to update:
You can update non-critical information. Major changes may require re-verification.
Next step:
The account can now process transactions and use Straddle’s services.
Rejected
When to update:
Updates are generally not possible in this state. Contact Straddle support for more information.
Next step:
Review the rejection reason in the status_detail and consider creating a new account if appropriate.
Inactive
When to update:
Updates are generally not possible in this state. Contact Straddle support for more information.
Next step:
Review the inactivation reason in the status_detail and work with Straddle support to resolve any issues.
The status_detail
object provides more granular information about the account’s current status. It includes the following fields:
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
Indicates the system or process that set the current status. Currently, this is always “watchtower”, Straddle’s compliance monitoring system.
A specific code related to the status reason. This can be useful for programmatically handling different status scenarios.
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.
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.