/BizEntity
When to Use
- Updating existing investor entity details, status, or classification
- Modifying party relationships, adding or removing authorized signatories
- Updating compliance information (FATCA/CRS, sophisticated investor status)
- Refreshing contact information, addresses, or payment details
- Performing comprehensive entity updates with complete data replacement
Common Scenarios
- Change Primary Contact: Update entity-level contact person without modifying accounts or payment methods. MUST include all existing accounts, addresses, communications, paymentDetails, and parties arrays to prevent data loss - only modify the specific party's isPrimaryContact flag.
- Add New Address: Entity relocates and needs additional correspondence address. GET current entity → Add new address to addresses array with new properties (omit AddressID) → Include ALL existing addresses → PUT complete structure. Omitting existing addresses permanently deletes them.
- Update Payment Method: Investor changes bank account details for distributions. GET current entity → Locate payment in paymentDetails array → Update BSB/account number (include paymentDetailID to update existing) → Include ALL other payment methods unchanged → PUT complete structure.
- Change Entity Status: Suspend entity due to compliance review. GET current entity → Update bizEntityStatusID to 3 (Suspended) → Include ALL nested arrays exactly as retrieved → PUT complete structure. Status change triggers automatic transaction restrictions and compliance workflows.
- Update Sophisticated Investor Status: Renew certification for wholesale product access. GET current entity → Update sophisticatedInvestorCertificateDate and sophisticatedInvestorEligibility → Include ALL nested arrays → PUT complete structure. Certification must be current (less than 2 years old) for continued access.
- Modify Party Signatory: Grant transaction signing authority to existing party. GET current entity → Locate party in bizEntityParties array → Set isSignatory to true (include bizEntityPartyID to update) → Include ALL other parties → PUT complete structure. Authorization changes affect transaction approval workflows.
Prerequisites
- Valid entity identifier (bizEntityID or externalBizEntityId must exist in system)
- Current entity data retrieved via GET to prevent unintentional data loss
- Access token with entity modification permissions and appropriate scope
- Understanding that nested arrays are completely replaced, not merged
- Backup of critical data relationships before modification
- Validation of all dependent system states (active accounts, pending transactions)
Considerations
- Complete Replacement: All arrays (accounts, addresses, communications, paymentDetails, parties) are replaced entirely - include ALL items you want to keep. Omitting an array or sending partial array deletes unlisted items permanently without recovery.
- Data Integrity: Always GET current entity first, modify specific fields, then PUT complete structure back with ALL unchanged nested items included. Skipping GET step risks permanent data loss.
- Immutable Fields: bizEntityTypeID cannot be changed after creation due to structural dependencies. Must exactly match entity's current type - PUT operations validate immutability and reject type changes.
- Required Arrays: accounts and bizEntityParties arrays are MANDATORY - validation fails if either is empty or omitted. Entity cannot exist without at least one account and one party relationship.
- Same ProductID Rule: All accounts within entity must share same productID or externalProductId. Validation enforces consistency across all account updates - mixed products trigger 400 error.
- Status Change Impact: Changing bizEntityStatusID triggers automatic workflows. Inactive/Suspended entities cannot process transactions, status changes cascade to all accounts, and compliance notifications are sent to regulatory systems.
- External ID Maintenance: externalBizEntityId changes break API integrations and external system linkages. Only modify if intentional re-mapping required - downstream systems depend on ID stability.
- Concurrent Updates: Multiple users updating same entity simultaneously causes data conflicts - last write wins. Implement optimistic locking with version checks or timestamps to prevent unintended overwrites.
- Account Dependencies: Currency changes trigger automatic balance conversions with FX rate calculations. Status changes affect transaction processing capabilities - closed accounts reject new transactions.
- Audit Trail: All changes are logged for compliance with immutable audit records. Modifications trigger notifications to related parties (investors, administrators, compliance officers) and regulatory reporting updates.
- Validation Cascade: Changes propagate through nested objects (accounts → transactions, parties → authorizations) with full business rule validation at each level. Failures at any level roll back entire PUT operation.
Description
Updates an existing business entity record with comprehensive support for modifying party relationships, account structures, and regulatory compliance data. This endpoint performs a complete replacement of the entity record - all nested arrays are replaced entirely, not merged with existing data.
⚠️ CRITICAL: Complete Array Replacement Behavior
PUT operations replace ALL nested arrays completely - not merging with existing data. This is the fundamental difference between PUT and POST.
What This Means (Data Loss Risk):
- accounts: Sending 2 accounts replaces ALL existing accounts (even if there were 5 before) - other 3 accounts are PERMANENTLY DELETED
- addresses: Omitting addresses array = deletes ALL addresses from entity
- communications: Sending partial list = deletes all unlisted communications
- paymentDetails: Not including existing payment = deletes that payment method
- bizEntityParties: Incomplete party list = removes unlisted parties from entity
Safe Update Strategy (REQUIRED to Prevent Data Loss):
- GET current entity: Retrieve complete entity structure using GET /BizEntity?BizEntityID=12345
- Modify as needed: Update only the specific fields you want to change
- Include ALL existing data: Send complete structure including all unchanged nested items (accounts, addresses, parties, communications, paymentDetails)
- Verify response: Check returned data matches your expectations - confirms successful update without data loss
Failure to follow this strategy results in permanent data loss. Deleted arrays cannot be recovered without database restoration. Always GET before PUT.
Person Reuse & Deduplication
When updating entities with person structures, use externalPersonId
consistently
across nested objects to maintain unified person identity and prevent duplicate person records.
This applies to both direct party relationships and organisation associated persons.
📚 Comprehensive Documentation
For detailed deduplication patterns, validation rules, and worked examples:
- Complete Deduplication Guide - Technical reference with validation logic and advanced scenarios
- POST Endpoint Patterns - Practical worked examples showing dual-role and multi-context person reuse
Required Headers - See Authentication
Header | Value | Description |
---|---|---|
Authorization | {accessToken} | Bearer token for API access |
Version | 2.0 | API version identifier |
Content-Type | application/json | Content type for request body |
Request Body
Parameter | Type | Required | Description |
---|---|---|---|
BizEntityID |
integer | Identifies which entity to update. Must match existing entity in system. | |
externalBizEntityId |
string | Updates your external system identifier for dual-ID integration. Changes may break external system linkages depending on API integration stability. | |
bizEntityTypeID |
integer | Entity type classification (Individual=1, Company=2, Trust=3, SMSF=4, Partnership=5). Must match entity's current type - type changes not permitted in updates. | |
advisorNumber |
string | Optional |
Updates advisor identifier. Changes affect commission routing and reporting permissions. |
authorizedNomineePersonID |
integer | Updates authorized nominee PersonID for trust structures. Referenced person must exist with verified authorization levels. | |
bizEntityStatusID |
integer | Updates operational status (Active=1, Inactive=2, Suspended=3, Closed=4). Status changes trigger automatic workflows and affect transaction processing capabilities. | |
bizEntityTaxOfficeTypeID |
integer | Updates tax office jurisdiction type affecting reporting format. Changes trigger FATCA/CRS recalculation and compliance workflow updates. | |
communicationPreferenceCopyParentBizEntity |
boolean | Optional |
Updates inheritance setting for communication preferences from parent entity. |
communicationPreferenceID |
integer | Optional |
Updates communication preference identifier. Only applies when not inheriting from parent entity. |
contactPerson |
string | Optional |
Updates primary contact person name for administrative communications. |
controllingPID |
integer | Updates controlling PersonID for beneficial ownership tracking. Used for FATCA/CRS reporting and AML compliance. | |
corporateRepresentative |
string | Optional |
Updates corporate representative name for company entities. |
customerCategoryID |
integer | Optional |
Updates customer category affecting fee structures and service levels. |
customerCode |
string | Optional |
Updates internal customer reference code for system integration. |
description |
string | Optional |
Updates entity description or operational notes (max 2000 chars). |
groupedWithBizEntityID |
integer | Updates parent entity ID for group structures. Changes consolidated reporting and inheritance settings. | |
investorTypeID |
integer | Optional |
Updates investor type classification affecting product eligibility. |
isDirectorInterest |
boolean | Optional |
Updates director interest flag for listed securities disclosure. |
isExecutiveInterest |
boolean | Optional |
Updates executive/insider interest flag for transaction reporting. |
legalName |
string | Optional |
Updates official registered legal name. Must match current incorporation documents. |
marginLenderOrganisationID |
integer | Updates margin lending organisation ID for facility arrangements. Affects transaction limits and risk management. | |
name |
string | Optional |
Updates display name for reports and interfaces. Can differ from legal name. |
powerOfAttorney |
string | Optional |
Updates power of attorney details documenting current arrangements. |
purposeOfInvestmentID |
integer | Optional |
Updates investment purpose classification affecting suitability assessments. |
salesPersonID |
integer | Optional |
Updates sales person or relationship manager. Changes commission allocation. |
salutation |
string | Optional |
Updates preferred salutation for correspondence. |
signatureParty |
integer | Updates authorized signatory PersonID for transaction approval. New signatory must complete identity verification. | |
sophisticatedInvestorCertificateDate |
string (date) | Updates sophisticated investor certification date for wholesale product access. Date must be current (typically <2 years). | |
sophisticatedInvestorComment |
string | Optional |
Updates notes regarding sophisticated investor qualification basis. |
sophisticatedInvestorEligibility |
string | Optional |
Updates basis for sophisticated investor status (accountant certificate, income test, assets test). |
sourceOfFundsID |
integer | Optional |
Updates source of funds classification for AML/CTF compliance. |
specialConditions |
string | Optional |
Updates special terms or operational conditions (max 2000 chars). |
standingProxy |
string | Optional |
Updates standing proxy arrangements for voting rights. |
taxationCountryCode |
string | Optional |
Updates primary tax jurisdiction (ISO code). Used for FATCA/CRS reporting. |
createdDate |
datetime | Optional |
System-assigned creation timestamp. Read-only field - cannot be modified in updates. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). |
accounts |
>
List<AccountDTO>... |
Optional |
Complete list of investment accounts for this entity. PUT operations replace entire array - include every account to keep (modified and unmodified). Omitted accounts are permanently deleted with transaction history. Same ProductID rule applies across all accounts. |
addresses |
>
List<AddressDTO>... |
Optional |
Complete list of addresses for this entity. PUT operations replace entire array - include every address to keep (changed and unchanged). Omitted addresses are permanently deleted, affecting compliance records (AML/KYC verification), correspondence delivery, and regulatory reporting (CRS/FATCA). |
communications |
>
List<CommunicationDTO>... |
Optional |
Complete list of contact methods for this entity. PUT operations replace entire array - include every contact method to keep. Omitted communications are permanently deleted, breaking correspondence routing (distribution notifications, regulatory notices, statement delivery). |
paymentDetails |
>
List<PaymentDetailDTO>... |
Optional |
Complete list of payment instructions for this entity. PUT operations replace entire array - include every payment method to keep. Omitted payment details are permanently deleted, breaking automated distribution processing, redemption payments, and deposit routing. |
bizEntityParties |
>
List<BizEntityPartyDTO>... |
Optional |
Complete list of party relationships for this entity. PUT operations replace entire array - include every party (persons and organisations) to keep. Omitted parties are permanently deleted, removing their roles (primary contact, signatory, income recipient, authorized nominee) and breaking entity authorization structures. |
Example Requests
curl -X PUT 'https://api.7g.com.au/BizEntity' \
-H 'Version: 2.0' \
-H 'Authorization: {accessToken}' \
-H 'Content-Type: application/json' \
-d '{
"bizEntityID": 12345,
"bizEntityTypeID": 4,
"name": "John Smith Investment Trust - Updated",
"bizEntityStatusID": 1,
"communicationPreferenceCopyParentBizEntity": false,
"isDirectorInterest": false,
"isExecutiveInterest": false,
"externalBizEntityId": "ENT-001",
"advisorNumber": "ADV-12345",
"legalName": "John Smith Investment Trust",
"description": "Updated trust structure with new beneficiaries",
"customerCode": "CUST-001",
"taxationCountryCode": "AUS",
"sophisticatedInvestorCertificateDate": "2024-03-15",
"sophisticatedInvestorEligibility": "Accountant Certificate",
"bizEntityParties": [
{
"bizEntityPartyID": 789,
"personID": 456,
"isPrimaryContact": true,
"isIncomeReceiving": true,
"isSignatory": true,
"isAuthorisedNominee": false,
"isPowerOfAttorney": false,
"ordinal": 1
}
],
"accounts": [
{
"accountID": 987,
"productID": 1,
"accountNumber": "ACC-001",
"currencyID": 1,
"drpTypeID": 2,
"drpValue": 100.00,
"accountStatusID": 1,
"balance": 250000.00
}
],
"addresses": [
{
"addressID": 321,
"addressTypeID": 101,
"addressLine": "456 Updated Street",
"suburb": "Sydney",
"postcode": "2000",
"stateCode": "NSW",
"countryCode": "AUS"
}
],
"communications": [
{
"communicationID": 654,
"communicationTypeID": 1,
"name": "john.smith.updated@email.com"
},
{
"communicationID": 655,
"communicationTypeID": 2,
"name": "+61412345678"
}
],
"paymentDetails": [
{
"paymentDetailID": 111,
"paymentTypeID": 1,
"bsb": "062000",
"accountNumber": "12345678",
"accountName": "John Smith Trust Account",
"isForDistribution": true,
"isForRedemption": true,
"isForDeposit": false,
"isForOther": false
}
]
}'
Response Examples
{
"result": true,
"message": "Entity updated successfully",
"recordCount": 1,
"data": [
{
"bizEntityID": 12345,
"externalBizEntityId": "ENT-001",
"bizEntityTypeID": 4,
"name": "John Smith Investment Trust - Updated",
"bizEntityStatusID": 1,
"legalName": "John Smith Investment Trust",
"description": "Updated trust structure with new beneficiaries",
"customerCode": "CUST-001",
"taxationCountryCode": "AUS",
"createdDate": "2024-01-15T08:30:00Z",
"sophisticatedInvestorCertificateDate": "2024-03-15",
"sophisticatedInvestorEligibility": "Accountant Certificate",
"accounts": [
{
"accountID": 987,
"productID": 1,
"accountNumber": "ACC-001",
"currencyID": 1,
"drpTypeID": 2,
"drpValue": 100.00,
"accountStatusID": 1,
"balance": 250000.00
}
],
"addresses": [
{
"addressID": 321,
"addressTypeID": 101,
"addressLine": "456 Updated Street",
"suburb": "Sydney",
"postcode": "2000",
"stateCode": "NSW",
"countryCode": "AUS"
}
],
"communications": [
{
"communicationID": 654,
"communicationTypeID": 1,
"name": "john.smith.updated@email.com"
},
{
"communicationID": 655,
"communicationTypeID": 2,
"name": "+61412345678"
}
],
"paymentDetails": [
{
"paymentDetailID": 111,
"paymentTypeID": 1,
"bsb": "062000",
"accountNumber": "12345678",
"accountName": "John Smith Trust Account",
"isForDistribution": true,
"isForRedemption": true
}
],
"bizEntityParties": [
{
"bizEntityPartyID": 789,
"personID": 456,
"isPrimaryContact": true,
"isIncomeReceiving": true,
"isSignatory": true,
"ordinal": 1
}
]
}
]
}