PUT

/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):
  1. GET current entity: Retrieve complete entity structure using GET /BizEntity?BizEntityID=12345
  2. Modify as needed: Update only the specific fields you want to change
  3. Include ALL existing data: Send complete structure including all unchanged nested items (accounts, addresses, parties, communications, paymentDetails)
  4. 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:

Required Headers - See Authentication

HeaderValueDescription
Authorization{accessToken}Bearer token for API access
Version2.0API version identifier
Content-Typeapplication/jsonContent 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.
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

bash
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

json
{
  "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
        }
      ]
    }
  ]
}