Party Management

Party Management Examples Overview:

This page provides comprehensive examples of GraphQL queries and mutations for managing parties (beneficiaries) in the ANZ Cash Management Central (ACMC) system. These operations cover various aspects of party management, including creating individual and non-individual clients, querying client creation status, and retrieving detailed client information. Each example is accompanied by explanations of input fields, sample requests, and response structures to help developers effectively integrate with the ACMC API for party-related operations.

Table of Contents

  1. Create Individual Party
  2. Create Non-Individual Party
  3. Query Party Creation Status
  4. Query Party Details
  5. Update Individual Party Details

Create Individual Party

Mutation: CreateIndividualParty

This mutation creates a new individual client in the ACMC system.

mutation ($party: CreatePartyIndividualInput!) {
  createPartyIndividual(i: $party) {
    commandId
  }
}

Variables:

{
    "party": {
        "customerId": "Q3VzdG9tZXI6MDVkM2VmZWQ2MTYyZDEzZTlkOGYyMTI1YTBhZTQwOGVmMmQ4MDQyMGU5MjA1N2YwNmViNGIxYjc2YTA2ZDMwZA==",
        "title": "Mr",
        "givenName": "Mark",
        "familyName": "Te",
        "gender": "M",
        "dateOfBirth": "1983-12-31",
        "residentialAddress": {
            "line1": "434 757 Bourke St",
            "line2": "Docklands",
            "city": "Melbourne",
            "countryCode": "AU",
            "postCode": "3000",
            "state": "VIC"
        },
        "roles": [
            "BENEFICIARY"
        ],
        "taxResidencies": [
            {
                "countryCode": "AU",
                "tin": null,
                "tinMissingReason": "PENSIONER"
            }
        ]
    }
}

Input Fields

Field Description
customerId Unique identifier for the customer
title Title of the individual (e.g., Mr, Mrs, Ms)
givenName First name of the individual
familyName Last name of the individual
gender Gender of the individual (e.g., M, F)
dateOfBirth Date of birth of the individual
residentialAddress Residential address of the individual
roles Roles assigned to the individual
taxResidencies Tax residency information

AddressInput Fields

Field Description
line1 First line of the address
line2 Second line of the address (optional)
city City
state State or province
countryCode Country code (e.g., AU for Australia)
postCode Postal or ZIP code

TaxResidencyInput Fields

Field Description
countryCode Country code for tax residency
tin Tax Identification Number (optional)
tinMissingReason Reason for missing TIN (if applicable)

Create Non-Individual Party

Mutation: CreatePartyTrust

This mutation creates a new non-individual client (e.g., company, trust) in the ACMC system.

mutation ($party: CreatePartyTrustInput!) {
  createPartyTrust(i: $party) {
    commandId
  }
}

Variables:

{
    "party": {
        "customerId": "Q3VzdG9tZXI6MDVkM2VmZWQ2MTYyZDEzZTlkOGYyMTI1YTBhZTQwOGVmMmQ4MDQyMGU5MjA1N2YwNmViNGIxYjc2YTA2ZDMwZA==",
        "reference": "Mark_Trust",
        "fullName": "Mark Family Trust",
        "trustType": "UNREGULATED_DOMESTIC_FAMILY",
        "clientClassification": "TRUST",
        "countryOfEstablishment": "AU",
        "businessNumber": "75140734783",
        "registeredOfficeAddress": {
            "line1": "200 Collins Street",
            "city": "Melbourne",
            "state": "VIC",
            "countryCode": "AU",
            "postCode": "3000"
        },
        "email": "mark@test.com.au",
        "workPhone": "92319231",
        "taxResidencies": [
            {
                "countryCode": "AU",
                "tin": "467299997"
            }
        ],
        "roles": [
            "BENEFICIARY"
        ]
    }
}

Input Fields

Field Description
customerId Unique identifier for the customer
reference Reference for the trust
fullName Full name of the trust
trustType Type of the trust
clientClassification Classification of the client
countryOfEstablishment Country where the trust was established
businessNumber Business number of the trust
registeredOfficeAddress Registered office address of the trust
email Email address for the trust
workPhone Work phone number for the trust
taxResidencies Tax residency information
roles Roles assigned to the trust

Query Party Creation Status

Query: PartyIndividualCreateCommand

This query checks the status of a party creation request.

query QueryCommand {
    node(id: "Q29tbWFuZDoyMDY0NWU3Yi02OGU2LTRlMTItYjA0YS1hZDdjZmFlZDYzYzY=") {
        __typename
        ... on GenericCommand {
            action
            state
            step
            invalid {
                field
                reason
            }
        }
        ... on PartyIndividualCreateCommand {
            action
            party {
                id
                roles
                reference
            }
            invalid {
                field
                reason
            }
            state
            step
        }
    }
}

Response:

{
    "data": {
        "node": {
            "__typename": "PartyIndividualCreateCommand",
            "action": "PARTY-INDIVIDUAL-CREATE",
            "party": {
                "id": "UGFydHlJbmRpdmlkdWFsOmJkMWNjZjVmNTYzY2NmNGQwZGQzNmJmYjIzYTJkMjNhMDBiYWEwOTcwNzE2NzdiM2VkOWY5ZTVmNDI3ZGNlNDU=",
                "roles": [
                    "BENEFICIARY"
                ],
                "reference": "new account"
            },
            "invalid": [],
            "state": "SUCCESSFUL",
            "step": "END"
        }
    }
}

Response Fields

Field Description
node.__typename The type of the command
node.action The action performed by the command
node.party.id The ID of the created party
node.party.roles The roles assigned to the party
node.party.reference The reference of the party
node.invalid List of validation errors (if any)
node.state The current state of the command
node.step The current step of the command

Query Individual Party Details

Query: PartyIndividual

This query retrieves detailed information about a client.

query QueryCommand{
    node(
        id: "UGFydHlJbmRpdmlkdWFsOmJkMWNjZjVmNTYzY2NmNGQwZGQzNmJmYjIzYTJkMjNhMDBiYWEwOTcwNzE2NzdiM2VkOWY5ZTVmNDI3ZGNlNDU="
    ) {
        ... on PartyIndividual {
            customer {
                fullName
            }
            id
            shortId
            gender
            title
            givenName
            familyName
            otherGivenNames
            dateOfBirth
            dateOfDeath
            deceased
            residentialAddress {
                line1
                line2
                city
                state
                countryCode
                postCode
            }
            alternateAddress {
                line1
                line2
                city
                state
                countryCode
                postCode
            }
            reference
            roles
            selfCertified {
                certificationDate
            }
            taxReportingType
            taxResidencies {
                countryCode
                tin
                tinMissingExplanation
                tinMissingReason
            }
            title
            __typename
            customer {
                fullName
                id
            }
        }
    }
}

Response:

{
    "data": {
        "node": {
            "customer": {
                "fullName": "Testing Trading Pty Ltd",
                "id": "Q3VzdG9tZXI6MDVkM2VmZWQ2MTYyZDEzZTlkOGYyMTI1YTBhZTQwOGVmMmQ4MDQyMGU5MjA1N2YwNmViNGIxYjc2YTA2ZDMwZA=="
            },
            "id": "UGFydHlJbmRpdmlkdWFsOmJkMWNjZjVmNTYzY2NmNGQwZGQzNmJmYjIzYTJkMjNhMDBiYWEwOTcwNzE2NzdiM2VkOWY5ZTVmNDI3ZGNlNDU=",
            "shortId": "9333346219",
            "gender": "M",
            "title": "Mr",
            "givenName": "Mark",
            "familyName": "Te",
            "otherGivenNames": [],
            "dateOfBirth": "1983-12-31",
            "dateOfDeath": null,
            "deceased": false,
            "residentialAddress": {
                "line1": "434 757 Bourke St",
                "line2": "Docklands",
                "city": "Melbourne",
                "state": "VIC",
                "countryCode": "AU",
                "postCode": "3000"
            },
            "alternateAddress": null,
            "reference": "new account",
            "roles": [
                "BENEFICIARY"
            ],
            "selfCertified": null,
            "taxReportingType": null,
            "taxResidencies": [
                {
                    "countryCode": "AU",
                    "tin": null,
                    "tinMissingExplanation": null,
                    "tinMissingReason": "PENSIONER"
                }
            ],
            "__typename": "PartyIndividual"
        }
    }
}

Response Fields

Field Description
node.customer.fullName The full name of the associated customer
node.customer.id The ID of the associated customer
node.id The ID of the party
node.shortId A short identifier for the party
node.gender The gender of the individual
node.title The title of the individual
node.givenName The given name of the individual
node.familyName The family name of the individual
node.otherGivenNames Any other given names of the individual
node.dateOfBirth The date of birth of the individual
node.dateOfDeath The date of death (if applicable)
node.deceased Whether the individual is deceased
node.residentialAddress The residential address of the individual
node.alternateAddress An alternate address (if any)
node.reference A reference for the party
node.roles The roles assigned to the party
node.selfCertified Self-certification information
node.taxReportingType The type of tax reporting
node.taxResidencies Tax residency information
node.__typename The type of the node (e.g., “PartyIndividual”)

Update Individual Party Details

Mutation: EditPartyIndividual

This mutation updates the details of an individual party.

mutation ($editindividual: EditPartyIndividualInput!) {
  editPartyIndividual (i: $editindividual) {
    commandId
  }
}

Variables:

{
    "editindividual": {
        "id": "UGFydHlJbmRpdmlkdWFsOmJkMWNjZjVmNTYzY2NmNGQwZGQzNmJmYjIzYTJkMjNhMDBiYWEwOTcwNzE2NzdiM2VkOWY5ZTVmNDI3ZGNlNDU=",
        "givenName": "Andy",
        "familyName": "Tran"
    }
}

Input Fields

Field Description
id The ID of the party to update
givenName The new given name of the individual
familyName The new family name of the individual

This documentation provides a comprehensive overview of the party management operations available in the ACMC API. Each section includes a GraphQL query or mutation, input field tables, and example responses to demonstrate usage.