This is an old revision of the document!
Integration Walkthrough
This walkthrough demonstrates the process for integrating with the T4 backend to create user accounts for third-party applications.
Overview
Creating a new user in the T4 system involves four essential steps:
- Step 1: Create user account
- Step 2: Create trading account
- Step 3: User market data selection
- Step 4: User signs EULAs
The order of these steps is important.
Default User and Account
New users and accounts are created using the firm default user and account as a template. Proper configuration of the firm default will simplify integration by reducing the amount of customization needed for each new user.
Note:
For different user types, you can override the default by using the templateUser or templateAccount parameter, allowing unlimited pre-configured user and account defaults.
Step 1: Create User Account
This endpoint creates a base user profile in the system.
Request
{
"username": "[email protected]",
"password": "0ctopus777{",
"firstname": "Test",
"lastname": "User",
"phone": "212-555-0123",
"email": "[email protected]",
"street": "2 Pierce Place",
"city": "Itasca",
"county": "Dupage",
"state": "IL",
"postCode": "60143",
"country": "US",
"apptype": "NonProfessional"
}
Response
{
"result": {
"value": {
"data": {
"userID": "8C6AC430-3292-4C1D-BE98-F0637B64734F",
"userName": "[email protected]",
"lastname": "User",
"firstname": "Test",
"enabled": true,
"message": "",
"company": "",
"phone": "212-555-0123",
"email": "[email protected]",
"firmID": "2884B215-4A4B-4E9D-A40E-F8212D713E13",
"billingRef": "",
"street": "2 Pierce Place",
"city": "Itasca",
"county": "Dupage",
"state": "IL",
"postCode": "60143",
"country": "US",
"simFirm": "",
"simUsername": "",
"simLinkedUserID": "",
"userCreationDate": "2025-04-24T00:00:00",
"appType": "NonProfessional",
"cmeMarketDataNetting": "Netting",
"trialExpires": "2025-05-08T00:00:00",
"iceMarketDataAccount": "",
"iceMarketDataParentAccount": "",
"euronextMarketDataAccount": "",
"euronextMarketDataParentAccount": "",
"custOrderHandlingInst": "Electronic",
"applications": [
/* Application list truncated for brevity */
],
"roles": [
"TimeEntry",
"QueueOrders",
"ANTSEditor",
"ANTSFastBoard",
"MarketProfile",
"Strategy",
"ModifyOrders",
"BasicCharting",
"Charting",
"ANTS1",
"PitTrades",
"BillingRetail1",
"Trading",
"ANTSAccountNet",
"StrategyQuotes"
],
"accounts": []
},
"metadata": {
"timestamp": "2025-04-24T18:03:32.2637427Z",
"requestId": "0HNC3B7647GLB:00000001"
}
},
"formatters": [],
"contentTypes": [],
"statusCode": 200
}
}
Important:
Make note of the userID value in the response. This will be needed for Step 2.
Step 2: Create Trading Account
This endpoint creates a trading account and links it to the user created in Step 1.
Request
{
"account": "chadtest13",
"accountName": "chadtest13",
"templateAccount": "Chad01",
"displayName": "Chad Test 13",
"accountUserId": "8C6AC430-3292-4C1D-BE98-F0637B64734F"
}
Response
{
"result": {
"value": {
"data": {
"accountID": "33CB0961-CBD8-408F-9EE1-06E34BB78D21",
"firmID": "2884B215-4A4B-4E9D-A40E-F8212D713E13",
"account": "chadtest13",
"accountName": "chadtest13",
"displayName": "",
"balance": 0.00000,
"cash": 0.00000,
"maxClipSize": 2000,
"preTradeDisabled": true,
"deleted": false,
"enabled": "Disabled",
"positionRollover": false,
"plRollover": true,
"minBalance": 0.00000,
"marginPC": 100.0,
"overnightMarginPC": 100.0,
"lossLimit": 0.00000,
"lossLimitPC": 0.0,
"dayLossLimit": 0.00000,
"dayLossLimitPC": 0.0,
"maxPosition": -1,
"noBalanceUpdates": false,
"noPositionUpdates": false,
"accountMode": "ByContract",
"orderRouting": false,
"groupName": "",
"activeTimeStart": "",
"activeTimeStop": "",
"strategyMaxClipSize": 2000,
"strategyMaxPosition": -1,
"warningThresholdPL": -1,
"warningThresholdLossLimit": -1,
"warningThresholdMargin": -1,
"boFirmCode": "",
"boOfficeCode": "",
"boSalesCode": "",
"totalPitTrades": -1,
"strategyTotalPitTrades": -1,
"maxContractMargin": -1.00000,
"maxContractDayMargin": -1.00000,
"blockExpiring": -1,
"blockExpiringOptions": -1,
"maxAccountPosition": -1,
"usePLForMargin": true,
"usePremiumForMargin": false,
"riskAlerts": false,
"fees": 0.0,
"commission": 0.00000,
"eMail": "",
"wideMarket": -1,
"priceBanding": -1,
"riskDebug": "None",
"tradeImport": false,
"marginType": "Spec",
"maxDelta": -1.00000,
"maxWorkingLongDelta": -1.00000,
"maxWorkingShortDelta": -1.00000,
"delayed": false,
"assignedType": true,
"optionsSettlement": 0,
"warningThresholdMinNetEquity": 0.00000,
"riskDetails": {
"comparisonRiskNumber": 0.0,
"comparisonNetLiqBalPCRiskNumber": 0.0,
"comparisonPCChangeVolatility": 0.2,
"comparisonPCChangeUnderlying": 0.1,
"comparisonWarningLevel": 0.8,
"maxDailyTheoLoss": 0.0,
"maxDailyTheoLossPCWarning": 0.8,
"greekDelta": 0.0,
"greekDeltaWarning": 0.8,
"greekVega": 0.0,
"greekVegaWarning": 0.8,
"greekGamma": 0.0,
"greekGammaWarning": 0.8,
"greekTheta": 0.0,
"greekThetaWarning": 0.8
},
"firm": "",
"parentFirmID": ""
},
"metadata": {
"timestamp": "2025-04-24T19:14:58.7012103Z",
"requestId": "0HNC3CH5EIF80:00000001"
}
},
"formatters": [],
"contentTypes": [],
"statusCode": 200
}
}
Step 3: User Market Data Selection
This step configures the market data feeds accessible to the user.
Request
{
// Market data selection configuration
// Documentation coming soon
}
Step 4: User Signs EULAs
This step completes the user creation process by confirming acceptance of required End User License Agreements.
Request
{
// EULA acceptance configuration
// Documentation coming soon
}
User Creation Flowchart
Common Parameters
| Parameter | Description | Type | Required |
|---|---|---|---|
| username | Unique identifier for the user | String | Yes |
| account | Trading account identifier | String | Yes |
| templateUser | Optional user template override | String | No |
| templateAccount | Optional account template override | String | No |
| apptype | User market data permissions type | String | Yes |
Common Response Codes
| Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request - Check request format |
| 401 | Unauthorized - Authentication failed |
| 404 | Not Found - Resource doesn't exist |
| 500 | Server Error - Contact support |
Support
For questions, issues, or assistance with the User Creation API, please contact:
- Email: T4.API@plus500.com
